我对正则表达式很陌生。 对于这样的字符串:
[quote="Username;123456]
我创建了这个正则表达式:
%\[quote=("|&\#039;|"|\'|)([^\r\n]*?)[^;](\d+)\]%s
这推出了3场比赛:
为什么[^;]
不能否定分号,而是删除一位数,我该如何解决?感谢。
答案 0 :(得分:0)
([^\r\n]*?)
;
可以吃掉[^;]
,因此;
可以自由地取一个数字(因为它匹配除了 {{1} })。
您可能想要;
(没有[^ ]
:
%\[quote=("|&\#039;|"|\'|)([^\r\n]*?);(\d+)\]%s
答案 1 :(得分:0)
我认为这可能更接近你想要的东西:
%\[quote=("|\')([\w]*)(?:;)(\d*)\]%s
原始模式的问题:
[^;]
(例如)正在告诉引擎匹配不是分号的东西,它不是“否定”#39;否则'否定'它 - 所以它捕获满足这个标准的第一个数字,因为它不是一个分号