\ w +:\ w + \ s * \ w * \ n - 这是由新行分隔的键值对(由冒号分隔)组合的正则表达式。
以上是两场比赛...... ABC:SSS DEF:GHJ
但是这个正则表达式只允许在单词中首次出现空格/制表符。
有人能告诉我如何避免标签/空格的“全部”出现
sports: soccer, tennis I would like to play all kind of spots
the spots desc continues...
Food: Indian, Italian, Mexican - I love all three.
如果我们有上面的文字 - 如果我使用正则表达式,我需要获得2场比赛。
答案 0 :(得分:0)
此代码应该完全正常工作,假设匹配中的所有嵌入换行符后面紧跟一个选项卡(请注意下面模式中的\ n \ t)。
//Pattern to match the form "Word: some text with embedded newline/tab combos"
const string pattern = @"^\w+:(.|(\n\t))*";
//Get the matching items
MatchCollection matches = Regex.Matches(input, pattern, RegexOptions.Multiline);
//Write out the matches
for (int i = 0; i < matches.Count; i++)
{
Console.WriteLine("-----MATCH-----");
Console.WriteLine(matches[i].Value);
Console.WriteLine();
}
对于您的输入字符串,此代码的输出如下所示:
-----MATCH----- sports: soccer, tennis I would like to play all kind of spots the spots desc continues... -----MATCH----- Food: Indian, Italian, Mexican - I love all three.
请务必不要忘记RegexOptions.Multiline
选项;它使^
表现为行的开头,而不仅仅是整个字符串的开头。