我正在为PHP搜索一个PCRE,以匹配冒号而不是反斜杠冒号(\:)。我试过了,但它不起作用,因为我现在知道^\\将匹配除反斜杠之外的任何字符。
\:
^\\
/[^\\\]:/
我只需要得到冒号,而不是转义冒号。
goqiplq21#
如果不想匹配前一个字符,请使用负向后查找:
/(?<!\\):/
请注意,当将上面的表达式用作PHP字符串时,您必须执行一些额外的转义,因为您必须对PHP和PCRE的反斜杠进行转义:
'/(?<!\\\\):/'
这样做的好处是,它将匹配字符串开头的冒号,并且不会捕获任何额外的字符。
cwdobuhd2#
删除第三个反斜杠:/[^\\]:/使用此字符串进行测试:This : is : a \: test结果是前两个冒号。
/[^\\]:/
This : is : a \: test
2条答案
按热度按时间goqiplq21#
如果不想匹配前一个字符,请使用负向后查找:
请注意,当将上面的表达式用作PHP字符串时,您必须执行一些额外的转义,因为您必须对PHP和PCRE的反斜杠进行转义:
这样做的好处是,它将匹配字符串开头的冒号,并且不会捕获任何额外的字符。
cwdobuhd2#
删除第三个反斜杠:
/[^\\]:/
使用此字符串进行测试:
This : is : a \: test
结果是前两个冒号。