我希望使用C#.net中的正则表达式匹配字符串中的整个单词 可能是我的模式有特殊性质。
我的模式:one: for(....){
two: for(....){
break one; // it will break iteration of first for loop
}
}
我的输入:
\b(blessed')\b
它与任何东西都不匹配。
如果我将模式编辑为:Blessed' be Thou for all the joy
Blessed be Thou for all the joy
它匹配我的字符串所具有的2个单词,但我想匹配具有\b(blessed)\b
在线演示:https://regex101.com/r/oI3nB5/1#pcre和http://regexr.com/3cq7q
答案 0 :(得分:2)
\b
是单词字符和非单词字符之间的边界。 "'"
(撇号)和" "
(空格)都是非单词字符,因此\b
在它们之间不匹配。使用否定的外观:
(?<![a-zA-Z'])([a-zA-Z']+)(?![a-zA-Z'])
&#34;之前没有字母或撇号,然后是任意数量的字母或撇号,然后在&#34; ...之后没有字母或撇号...或者如果你想要的话文字Blessed'
,
(?<![a-zA-Z'])(Blessed')(?![a-zA-Z'])