-2

任意の行数の文字列があり、それぞれが以下に示すようなパターンに従っていると仮定すると、

 Line 498:          [Badsds()]
 Line 499:          protected override void Something() {
 Line 500:              base.Something();

"Line \d+:\s*" の後のテキストをキャプチャする正規表現は何ですか?

4

2 に答える 2

1

あなたが使用している場合は、c#行うことができます

List<string> lstMatch=Regex.Matches(input,@"(?<=^\s*Line \d+:)(.*)$",RegexOptions.IgnoreCase|RegexOptions.Multiline)
                           .Cast<Match>()
                           .Select(x=>x.Value)
                           .ToList();

また

List<string> lstMatch=Regex.Matches(input,@"^\s*Line \d+:\s*(.*)$",RegexOptions.IgnoreCase|RegexOptions.Multiline)
                               .Cast<Match>()
                               .Select(x=>x.Groups[1].Value)
                               .ToList();

一度にすべての行を読みたくない場合

foreach (string line in File.ReadLines(fileLocation))
    {
       Regex.Match(line,@"^\s*Line \d+:\s*(.*)$",RegexOptions.IgnoreCase).Groups[1].Value;
    }
于 2013-01-23T17:14:54.310 に答える
0
Line \d+:\s*(.*)

最初のキャプチャ グループで指定したパターンの後のすべてをキャプチャします。

于 2013-01-23T17:14:11.633 に答える