如何匹配在正则表达式中包含特殊字符的整个单词

在正则表达式中,有一种方法可以在PCRE语法的整个文本区域中转义特殊字符?

例如。 hey+Im+A+Single+Word+Including+The+Pluses+And.Dots

通常要匹配正则表达式中的确切字符串,我将不得不逃脱每一个+./ s在上面的字符串中。 这意味着如果字符串是一个变量,则必须寻找特殊字符并手动转义它们。 通过告诉正则表达式转义文本块中的所有特殊字符,有更简单的方法吗?

这背后的动机是把它附加到一个更大的正则表达式,所以即使有更简单的方法来获得精确匹配,他们不适用于此。


QE元字符之间的所有内容都被视为PERL兼容RegExes(PCRE)中的文字。 所以在你的情况下:

Qhey+Im+A+Single+Word+Including+The+Pluses+And.DotsE

其他引擎很少支持这种语法。


如果它是蟒蛇。 你可以使用re.escape(string)来获得一个文字字符串

import re

search = 'hey+Im+A+Single+Word+Including+The+Pluses+And.Dots'
text = '''hey+Im+A+Single+Word+Including+The+Pluses+And.Dots 
heyImmASingleWordIncludingThePlusessAndaDots 
heyImASingleWordIncludingThePlusesAndxDots 
'''
rc = re.escape(search)
#exactly first line in text
print(re.findall(rc,text))

#line two and three as it will + as repeat and . as any char
print(re.findall(search,text))

--------结果-------------------

['hey + Im + A + Single + Word + Including + The + Pluses + And.Dots'] ['heyImmASingleWordIncludingThePlusessAndaDots','heyImASingleWordIncludingThePlusesAndxDots']

链接地址: http://www.djcxy.com/p/77027.html

上一篇: How to match a whole word that includes special characters in regex

下一篇: Match if something is not preceded by something else