-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 回答