c# - 如何用括号替换 C# 中的特定单词?

标签 c# regex string replace

考虑以下字符串:

string s = "The man is (old).";

如果我使用:

Regex.Replace(s,@"\b\(old\)\b", @"<b>$&</b>");

输出是:
这个人是(老)。
但我会像这样更改整个(旧)词:
这个人是(老)

我该怎么做?

最佳答案

\b 将不匹配,因为 () 不是单词字符。你把它们放在那里有什么原因吗,因为你可以把它们放在外面:

 string replaced = Regex.Replace(s,@"\(old\)", @"<b>$&</b>");

根据specs :

\b :匹配必须出现在\w(字母数字)和\W(非字母数字)字符之间的边界上。

-space-) 都是非字母数字的。 (. 相同,因此 \b 在这两种情况下都不会匹配。

关于c# - 如何用括号替换 C# 中的特定单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11439039/

相关文章:

javascript - Express 表单验证路由器中的意外行为

javascript - 在javascript中的2个字节之间添加一个字符

c# - 与列表进行快速字符串比较

string - 为什么这个 Haskell 程序会产生反斜杠?

c# - 如何使用 ObjectListView 显示包含当前行索引的列?

c# - 在多播委托(delegate)上使用慢速 DynamicInvoke 的替代方法

c# - WPF 列表框绑定(bind)

c# - 推荐一个可扩展的 SMTP 服务器

python - 替代多个正则表达式以替换 Python 中的已知单词

python - 使用ast.literal_eval()清理数据时出现语法错误