正则表达式匹配可能具有特殊字符的单词

本文关键字:特殊字符 单词 正则表达式 | 更新日期: 2023-09-27 18:34:55

我想使用 C#.net 中的正则表达式匹配字符串中的整个单词可能是我的模式有没有特殊字符。

我的模式:'b(blessed')'b

我的输入:

Blessed' be Thou for all the joy
Blessed be Thou for all the joy

它与任何东西都不匹配。

如果我将我的模式编辑为:'b(blessed)'b

比它匹配我的字符串具有的 2 个单词,但我想匹配具有' (Single Quote)的单词

在线演示:https://regex101.com/r/oI3nB5/1#pcre 和 http://regexr.com/3cq7q

正则表达式匹配可能具有特殊字符的单词

'b是单词字符和非单词字符之间的边界。"'"(撇号(和" "(空格(都是非单词字符,因此它们之间的'b不匹配。使用负面环顾四周:

(?<![a-zA-Z'])([a-zA-Z']+)(?![a-zA-Z'])

"之前没有字母或撇号,然后是任意数量的字母或撇号,然后之后没有字母或撇号"......或者如果你想要文字Blessed'

(?<![a-zA-Z'])(Blessed')(?![a-zA-Z'])