我有一个文本文件,以下是它的内容:
initTest
1234 567 8910
1234 567 8910
endTest
initTest
1234 567 8911
1234 567 8911
endTest
initTest
1234 567 8912
1234 567 8912
endTest
然后我需要获取“initTest”(单词前后有3个空格)和“endTest”(单词前后有3个空格)中的块数并将块的元素保存到数组 X。结果应该是,
X[0] = {"1234 567 8910\n 1234 567 8910"}
和 X.length = 3。
我已经尝试使用正则表达式在 C# 中遵循代码,但结果不匹配。
string text = line;
string search = @"(^\s*initTest.*?^\s*endTest)";
MatchCollection matches = Regex.Matches(text, search, RegexOptions.Singleline | RegexOptions.IgnoreCase);
Console.WriteLine("there was {0} matches for '{1}'", matches.Count, search);
Console.ReadLine();
我真的很感激任何线索和帮助。非常感谢你提前。
最佳答案
用
(?<=initTest)(.|\n)*?(?=endTest)
在哪里
initTest(.|\n)*?endTest
将捕获所需的文本,但包括 initTest 和 endTest。使用 (?
演示:https://dotnetfiddle.net/tiXRut
关于c# - 使用正则表达式 C# 在两个字符串的块内获取文本文件的多行字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38774057/