我尝试了很多事情,但是无论何时连续两次满足条件,我都会坚持使用正则表达式。在这种情况下,它只是将其视为一个表达式,而不是2。
\[ame\=[^\.]+(.+)youtube\.(.+)v\=([^\]\&\"]+)[\]\'\"\&](.+)\[\/ame\]
例如
[ame =“ http://www.youtube.com/watch?v=brfr5CD2qqY”] [B] [COLOR = yellow] http://www.youtube.com/watch?v=brfrx5D2qqY [/ COLOR] [/ B] [/ ame] [/ U] [B] [COLOR =黄色]或[/ COLOR] [/ B] [B] [COLOR =黄色] B [/ COLOR] [/ B] [ame =“ http: //www.youtube.com/watch?v=M9ak3rKIBAU"][B][COLOR=yellow]http://www.youtube.com/watch?v=M9a3arKIBAU[/COLOR][/B][/ame] [B] [COLOR = yellow] or [/ COLOR] [/ B] [B] [COLOR = yellow] C [/ COLOR] [/ B] [ame =“ http://www.youtube.com/watch? v = 7vh--3pyq5U“] [颜色=黄色] http://www.youtube.com/watch?v=7vh--3pyq5U [/ COLOR] [/ ame]
在这种情况下,此正则表达式将匹配所有三个选项,而不是将其全部匹配。
有什么想法可以使表达式表达与第一个匹配"[/ame]"
吗?
问题是使用.+
-它们是“贪婪的”,这意味着它们将消耗尽可能多的输入并且仍然匹配。
将它们更改为勉强的量词:.+?
,它不会在第一个匹配项的末尾向前跳过以匹配最后一个匹配项的末尾。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句