0

我想使用正则表达式从行中获取文本

例如:

 string xyz = "text/plain; charset=US-ASCII; name=\"anythingfile.txt\"";

我想从那行获取anythingfile.txt

这意味着我想创建与模式name=""匹配的正则表达式,并在我尝试过的双引号之间获取字符串

regex re= new regex(@"name="\"[\\w ]*\""")

但没有得到正确的结果....请帮助我。

4

3 回答 3

1

试试这个正则表达式模式,

(?<=name="").*(?="")
于 2012-11-20T07:07:29.580 回答
1

你真的需要正则表达式吗?简单的字符串操作可能就足够了:

var NameValue = xyz.Split(';')
                   .Select(x => x.Split('='))
                   .ToDictionary(y => y.First().Trim(), y => y.LastOrDefault());
于 2012-11-20T07:09:27.807 回答
0

最好的方法是使用命名组:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        string xyz = "text/plain; charset=US-ASCII; name=\"anythingfile.txt\"";
        Match m = Regex.Match(xyz, "name=\"(?<name>[^\"]+)\"");
        Console.WriteLine(m.Groups["name"].Value);
        Console.ReadKey();
    }
}
于 2012-11-20T07:10:31.367 回答