我想要相同的功能\b
但与其他角色。
在 C# 中,我想要类似的东西
string str = "\\b" + Regex.Escape(string) + "\\b");
不过我有一些所以Regex.Escape("@(Something")
会在字符串中找到它Typing @(Something to you
.
您遇到的问题与以下事实有关:\b字边界是上下文相关的,并且\b\(abc\b
将匹配(abc
in x(abc)
但不在:(abc)
(\b\(
表示前面必须有一个单词 char(
).
要匹配任何未用单词字符括起来的字符串,请使用
var pattern = $@"(?<!\w){Regex.Escape(string)}(?!\w)";
See the 正则表达式演示.
Here, (?<!\w)
是一个负向后查找,将确保当前位置左侧没有单词字符,并且(?!\w)
负向前视将确保当前位置右侧没有单词字符。
其他自定义“单词”边界:
- 空白字边界:
var pattern = $@"(?<!\S){Regex.Escape(string)}(?!\S)"; // Match when enclosed with whitespaces
- 单词和符号边界(如果您不想找到
c
in c++
): var pattern = $@"(?<![\w\p{S}]){Regex.Escape(string)}(?![\w\p{S}])";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)