用特殊字符编写正则表达式


Writing a regular expression with special characters

作为序言,我是编写正则表达式的新手(而且非常不擅长)。

我正在尝试在PHP函数preg_split中使用一个正则表达式,并希望通过来描述

*
**
`

我遇到麻烦了,因为这些字符是命令。如何编写正则表达式来完成此操作?

对于PCRE和其他所谓的兼容风格,必须转义这些外部字符类。

. ^ $ * + ? () [ { ' |

倒勾没有特殊含义,所以您不需要逃避它。

preg_split('/'*{1,2}|`/', $text);

参见Demo

注意:为了将来参考,您可能需要研究使用preg_quote()

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

preg_split("(?:'*{1,2}|'`)", $string);