我需要将一个像"一.二.三.四.五.六.七.八.九.十一.十一"的字符串匹配成四个句子的组.我需要一个正则表达式,在每四个句点后将字符串分成一个组.就像是:
string regex = @"(.*.\s){4}";
System.Text.RegularExpressions.Regex exp = new System.Text.RegularExpressions.Regex(regex);
string result = exp.Replace(toTest, ".\n");
Run Code Online (Sandbox Code Playgroud)
不起作用,因为它将替换句点之前的文本,而不仅仅是句点本身.我如何只统计句点并用句点和换行符替换它们?
尝试定义方法
private string AppendNewLineToMatch(Match match) {
return match.Value + Environment.NewLine;
}
Run Code Online (Sandbox Code Playgroud)
并使用
string result = exp.Replace(toTest, AppendNewLineToMatch);
Run Code Online (Sandbox Code Playgroud)
这应该为每个匹配调用该方法,并将其替换为该方法的结果。该方法的结果将是匹配的文本和换行符。
编辑:另外,我同意奥利弗的观点。正确的正则表达式定义应该是:
string regex = @"([^.]*[.]\s*){4}";
Run Code Online (Sandbox Code Playgroud)
另一个编辑:修复了正则表达式,希望这次我做对了。
| 归档时间: |
|
| 查看次数: |
9885 次 |
| 最近记录: |