我有以下正则表达式。
[rep=([0-9]*?),([0-9]*?)]([w#]{4,11}),([w#]{4,11}),([w#]{4,11}),([w#]{4,11})[/rep]
对我来说,这似乎是完全有效的——例如,它意味着匹配以下字符串:
[rep=0,20]#fff,#fff000,#111,transparent[/rep]
虽然它在RegExr中似乎确实有效,但它的MyCode似乎并没有触发。
我发现了这个问题。必须转义散列#
。
[rep=([0-9]*?),([0-9]*?)]([w#]{4,11}),([w#]{4,11}),([w#]{4,11}),([w#]{4,11})[/rep]
看起来您没有在PHP实现中放置分隔符。
if( preg_match("/[rep=([0-9]*?),([0-9]*?)]([w#]{4,11}),([w#]{4,11}),([w#]{4,11}),([w#]{4,11})[/rep]/", $str) ) {
}
https://eval.in/568814