我想写一个正则表达式来替换所有短划线,这些短划线紧跟在后面的数字或仅由数字组成的字符串之后。
请参见此示例,我突出显示了我想替换的破折号:
苏格兰小学(4
-
11)-(PPI)holiday-castle@cwwdssaaaa.org 14
-
19 假日与聚类-(FR)SF
-
00014www7902-az2388
793902
-
SS23887902
-
az2388
我要替换的破折号的格式为-
在粗体中是相邻数字的字符串,指示应设置其格式。如您所见,文本中的破折号不应格式化,即电子邮件地址中的破折号,必须用空格包围或不与一组完整的数字相邻。
到目前为止,我已经写了这篇文章,但不确定如何进一步:
(-\b\d+\b|\b\d+\b-)
答案 0 :(得分:1)
您可以使用环顾四周检查两侧的数字:
string input = "Scotland Primary School (4-11) - (PPI)";
string result = Regex.Replace(input, @"(?<=(^|\s)\d+)-|-(?=\d+(\s|$))", ",");
Console.WriteLine(result);
我在这里假设替换项是逗号,因为在您的问题中,关于替换项应该是什么,我实际上没有看到任何东西。