php 匹配冒号但不匹配反斜杠冒号的正则表达式

rjjhvcjd  于 2023-05-05  发布在  PHP
关注(0)|答案(2)|浏览(146)

我正在为PHP搜索一个PCRE,以匹配冒号而不是反斜杠冒号(\:)。我试过了,但它不起作用,因为我现在知道^\\将匹配除反斜杠之外的任何字符。

/[^\\\]:/

我只需要得到冒号,而不是转义冒号。

goqiplq2

goqiplq21#

如果不想匹配前一个字符,请使用负向后查找:

/(?<!\\):/

请注意,当将上面的表达式用作PHP字符串时,您必须执行一些额外的转义,因为您必须对PHP和PCRE的反斜杠进行转义:

'/(?<!\\\\):/'

这样做的好处是,它将匹配字符串开头的冒号,并且不会捕获任何额外的字符。

cwdobuhd

cwdobuhd2#

删除第三个反斜杠:
/[^\\]:/
使用此字符串进行测试:
This : is : a \: test
结果是前两个冒号。

相关问题