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

时间:2013-11-23 22:51:07

标签: php regex

作为前言,我是新手(并且非常擅长)编写正则表达式。

我正在尝试在PHP函数preg_split中使用正则表达式,我希望通过

来描述
*
**
`

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

2 个答案:

答案 0 :(得分:3)

对于PCRE和其他所谓的兼容风格,您必须将这些风格转移到character classes之外。

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

反引号没有特殊含义,因此您无需转义它。

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

请参阅Demo

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

  

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

答案 1 :(得分:-1)

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