【发布时间】:2020-10-30 18:53:08
【问题描述】:
我的任务是使用正则表达式验证字符串,如果匹配成功则执行替换,如果字符串不匹配则抛出异常。
显然,我可以检查Regex.IsMatch,然后调用Regex.Replace 或抛出异常:
var str = "89991112233";
var pattern = @"(?<prefix>8|\+?\d+)\s*(?<code>\d{3,3})\s*(?<phone>\d{7,7})";
var replace = "+7 ${code} ${phone}";
if (!Regex.IsMatch(str, pattern))
throw new Exception();
else
return Regex.Replace(str, pattern, replace);
但它需要两个相同的匹配操作。
我可以在 .Net 中执行正则表达式检查并获取字符串是否匹配以及在单个调用中的替换吗?
【问题讨论】: