C#中如何通过正则表达式匹配单词开头并替换整个完整单词
解决方案
你原代码的正则仅匹配了单词开头的ABCD片段,没有将整个单词纳入匹配范围,因此只会替换前缀部分。要实现匹配前缀后替换整个单词,调整正则表达式让它完整匹配所有以指定前缀开头的单词即可。
修正后的代码
using System.Text.RegularExpressions; string input = "My name is ABCDEFG and not ABCDQWER"; string pattern = @"\bABCD\w*"; string replace = "text"; string result = Regex.Replace(input, pattern, replace); Console.WriteLine(result);
正则规则说明
\b:匹配单词边界,确保只匹配独立单词的开头,不会命中单词中间出现的ABCD片段ABCD:你指定的单词前缀匹配规则\w*:匹配前缀之后的0个或多个单词字符(包含字母、数字、下划线),确保整个单词被纳入匹配范围
运行上述代码即可得到期望输出:My name is text and not text。
场景适配
如果业务场景中单词允许包含非字母数字下划线的字符(比如连字符、点号等),可以将正则调整为@"\bABCD[^\s]*",该规则会匹配前缀之后直到遇到空白字符前的所有内容,覆盖更通用的单词定义。
内容的提问来源于stack exchange,提问作者Feroz
相关产品推荐
相关产品推荐

