如何对字符串中的一组字符进行转义


How to escape a set of characters in a string

所以我有一个变量,比如"$x"。如果一组特殊字符出现在这个字符串中,我必须转义它们。我想逃离的角色是:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : '

我不太擅长regex,但我认为这就是我应该做的,是吗?

对于每个特殊的字符,我可以像str_replace("+","'+",$x);一样逃离它们,但我不确定应该这样做。有什么建议吗?

您可以使用函数preg_quote。它在正则表达式语法中的每个字符前面都放一个反斜杠。如果您有一个需要在某些文本中匹配的运行时字符串,并且该字符串可能包含特殊的regex字符,那么这将非常有用。