我有一种情况,即当逗号不应该被删除时,例如,
约翰福音3:16,18,4:2成为约翰福音3:16 18 4:2
我想把逗号放回去,并认为我可以用
来做string strRegex = @"(\d+)\s+(\d+)";
RegexOptions myRegexOptions = RegexOptions.None;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"John 3:16 17 4:3";
string strReplace = @"$1,$2";
return myRegex.Replace(strTargetString, strReplace);
但这只是给了我
约翰福音3:16,18 4:2
我错过了什么?
答案 0 :(得分:5)
使用lookbehind and lookahead,因此数字不属于您的匹配项目:
string strRegex = @"(?<=\d)\s+(?=\d)";
...
string strReplace = @",";
答案 1 :(得分:1)
您可以尝试使用lookbehind:
@"(?<=\d)\s+(\d+)"
并替换为
,$1