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

Ale*_*sky 10 c# regex

我花了一些时间,但还是要解决.我需要能够在字符串中匹配带有符号的单词(如c ++)的正则表达式.

我已经习惯了/\bword\b/,对于"通常"的话,它运作正常.但是一旦我尝试/\bC\+\+\b/它就行不通.它有些与加号相符合作用.

我需要一个正则表达式来检测输入字符串是否包含c ++单词.输入像,

"c++ developer"
"using c++ language" 
Run Code Online (Sandbox Code Playgroud)

等等

PS.使用C#,.Net Regex.Match函数.

感谢帮助!

ken*_*ytm 16

+ 是一个特殊的角色,所以你需要逃脱它

\bC\+\+(?!\w)
Run Code Online (Sandbox Code Playgroud)

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

  • 当我尝试转义加号时,Visual Studio 将无法编译。 (2认同)
  • @WEFX 在双引号前加一个`@`:`@"\bC\+\+(?!\w)"` (2认同)

Jak*_*org 5

问题不在于加号字符,即你已正确转义,而是\b序列.它表示单词边界,它是单词字符(字母数字)和其他内容之间的点.Plus不是单词字符,因此\b要匹配,最后一个加号后面需要有一个单词字符.

\bC\+\+\b例如,匹配"测试C++测试"而不是"测试C++测试".尝试一下,\bC\+\+\s如果你希望在最后一个加号后面有一个空格.