假设您有一个包含任意行数的字符串,每行都遵循如下所示的模式,
Line 498: [Badsds()]
Line 499: protected override void Something() {
Line 500: base.Something();
捕获“Line \d+:\s*”之后的文本的正则表达式是什么?
假设您有一个包含任意行数的字符串,每行都遵循如下所示的模式,
Line 498: [Badsds()]
Line 499: protected override void Something() {
Line 500: base.Something();
捕获“Line \d+:\s*”之后的文本的正则表达式是什么?
如果你正在使用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;
}
Line \d+:\s*(.*)
捕获您在第一个捕获组中指定的模式之后的所有内容。