我试图捕捉下面的对话,但正则表达式只捕获一行,我希望它能捕获任何人说的整个短语,直到下一个人说出其他任何内容。如果我使用/ s设置,'。+'将捕获所有内容,直到文件结束,直到下一个匹配
我是正则表达式的新手,对不起任何不好的解释
这是我到目前为止所得到的
正则表达式:
/([0-9]{2}\/[0-9]{2}\/[0-9]{2} [0-9]{2}\:[0-9]{2}\:[0-9]{2}: (.+):) (.+)/
我将使用\ 2和\ 3来捕获谁说的和在for循环中说的短语所以我可以发短信
答案 0 :(得分:0)
使用模式提取,然后处理一些LINQ:
var pattern = "^[0-9]{2}/[0-9]{2}/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}: (.+?): ((?:[^/]+(?:\n|$))+)";
var data = Regex.Matches(src, pattern, RegexOptions.Multiline).Cast<Match>().Select(m => new { who = m.Groups[1].Value, text = m.Groups[2].Value});