为了账号安全,请及时绑定邮箱和手机立即绑定

C# RegEx 仅在字符串中没有其他文本时替换匹配项

C# RegEx 仅在字符串中没有其他文本时替换匹配项

C#
泛舟湖上清波郎朗 2023-12-17 09:59:26
我有以下正则表达式模式:@"^((\(?\+45\)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2})$/gm"它应该替换字符串,例如:1020304010 20 30 40+45 10 20 30 40+4510203040这是我的替换方法:var text = "10 10 10 10"; text = Regex.Replace(text, @"^((\(?\+45\)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2})$/gm", "****");上面的代码返回“****”哪个是对的。var text = "10 10 10 10 10203040"; text = Regex.Replace(text, @"^((\(?\+45\)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2})$/gm", "****");上面的代码不会替换任何文本,只是返回原始字符串 - 我需要此代码返回“**** ****”,因为我需要的数字出现了两次匹配。我希望有人能帮助我 - 提前致谢:)
查看完整描述

1 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您已将正则表达式锚定到行的开头 (^) 和结尾 ($),因此它们只会在以下情况下执行替换:匹配的字符串是整行。删除锚点,它应该按预期工作。



查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信