我刚刚在WordPress核心中遇到一个正则表达式,这引起了我的兴趣...... 我之前找到了这样的正则表达式,并对它们感到好奇,但它们已经有效,所以我没有改变它们。我感兴趣的部分如下:
|(?<!%)%f|
和|(?<!%)(%s)|
- 请注意它们是如何被管道包围而不是正斜杠?
我做了一些搜索,无法找出表达式中的这些变化?我知道在表达中他们几乎就像or
- 我明白了。但是取代正斜线?
有人可以解释一下这里发生了什么吗? 我唯一的想法是以下几点......
|(?<!%)
意味着什么都没有,或者说是前瞻。
(%s)|
表示(%s)
或没有......
这是典型的管道。然而正如我所说的,我之前已经看过它而不是前向斜线,所以我不确定这是PCRE的某些未记录的功能还是类似的东西?
修改
如果您有管道,则不需要正斜杠。如果您没有管道,则会出现正则表达式语法错误。
答案 0 :(得分:1)
它们只是PCRE
样式REGEX
的不同分隔符...我自己使用感叹号。
管道是分界线,而你习惯的是斜线。
!^[A-Z]+$!i
- 所有字母字符不区分大小写。
更多关于分隔符的信息: http://www.php.net/manual/en/regexp.reference.delimiters.php
请注意,他们在示例和#
符号中使用了%
个字符。
答案 1 :(得分:0)
没有发生任何事情,管道可以用作代替/
的模式的分隔符,例如~
,#
,@
,...