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

Oga*_*anM 5 regex

在正则表达式中有没有办法在 PCRE 语法中转义整个文本区域中的特殊字符?

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

通常情况下,以匹配正则表达式,我将不得不逃离每一个确切的字符串+,并./S IN上面的字符串。这意味着如果字符串是一个变量,则必须寻找特殊字符并手动转义它们。通过告诉正则表达式转义文本块中的所有特殊字符,是否有更简单的方法来做到这一点?

这背后的动机是将其附加到更大的正则表达式中,因此即使有更简单的方法来获得精确匹配,它们也不适用于此处。

rev*_*evo 5

\Q\E元字符之间的所有内容都被视为 PERL 兼容正则表达式 (PCRE) 中的文字。所以在你的情况下:

\Qhey+Im+A+Single+Word+Including+The+Pluses+And.Dots\E
Run Code Online (Sandbox Code Playgroud)

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

  • Java 的`Pattern` 类也支持`\Q...\E` 语法。 (2认同)