正则表达式将单词与+(加号)符号匹配

2024-04-25 18:02:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经花了一些时间,但仍然需要解决。我需要一个正则表达式,它能够将一个单词与字符串中的符号(如c++)匹配起来。

我用过/\bword\b/,对于“普通”的词,它工作正常。但只要我一试/\bC\+\+\b/它就不起作用。上面加了个加号有点不对劲。

我需要一个regex来检测输入字符串是否包含c++单词。像这样的输入

"c++ developer"
"using c++ language" 

等等

ps.使用C#,.Net Regex.Match函数。

谢谢你的帮助!


Tags: 字符串developernetmatch时间符号单词language
3条回答

+是一个特殊字符,因此需要对其进行转义

\bC\+\+(?!\w)

注意,我们不能使用\b,因为+不是单词字符。

加号有特殊的含义,所以必须用\来转义。同样的规则也适用于这些字符:\, *, +, ?, |, {, [, (,), ^, $,., #,和空白

更新:问题出在\b序列上

问题不在于加号字符,而是在于\b序列。它表示一个单词边界,它是一个单词字符(字母数字)和其他字符之间的一个点。Plus不是单词字符,因此要匹配\b,需要在最后一个加号之后直接有单词字符。

^ {CD3>}匹配“测试C++测试”,但不匹配“测试C++测试”。如果你希望在最后一个加号后面有一个空白,可以尝试类似\bC\+\+\s的方法。

相关问题 更多 >