我需要正则表达式的帮助
'#\[quote=(.+);(.+)](.+)\[/quote]#Usi'
这样可行,但只有在你正确使用它时它才有效,IE
[quote=SvenMarklund;53124]kåle på kaffe de varte snörauka å kölblåst borta kamjox så ma lej bivack hela natta[/quote]
它不匹配,这很好:
[quote=OlleMarklund]jag vill inte ha en pörskans zingo![/quote]
但是如果你在同一篇文章中这样做,那就“打破”(见图片)
[quote=OlleMarklund]jag vill inte ha en pörskans zingo![/quote]
[quote=OlleMarklund;23523]jag vill inte ha en pörskans zingo![/quote]
我怎样才能匹配[quote = something;(numbers)]
答案 0 :(得分:1)
这是固定的正则表达式:
'~\[quote=([^[\]]+);([^[\]]+)]([^[\]]+)\[\/quote]~si'
请参阅regex demo
您需要在开场OlleMarklund
内捕获23523
和[quote]
。要实现这一点,您需要限制贪婪的.+
子模式,最好的方法是使用否定字符类 [^[\]]
(匹配除{{{}之外的任何字符1}}和[
)。
如果您需要在]
内匹配更多标签,则需要使用类似
[quote]
仅匹配第一个'~\[quote=([^[\]]+);([^[\]]+)]((?:(?!\[\/quote]).)+)\[\/quote]~si'
(demo)。对于嵌套的标签,您最好使用BBCode解析器。