0

正規表現を使用して行からテキストをフェッチしたい

例:

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

その行からanythingfile.txtを取得したい

つまり、パターンname = ""に一致する正規表現を作成し、これで試した二重引用符の間に文字列をフェッチしたいということです。

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

しかし、適切な結果が得られません....plzは私を助けます。

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 に答える