【发布时间】:2014-01-02 00:46:46
【问题描述】:
我尝试了很多东西,但只要连续 2 次满足标准,我就会坚持使用正则表达式。在这种情况下,它只是将其视为一个表达式而不是 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][/我] [B][COLOR=黄色]或[/COLOR][/B] [B][COLOR=黄色]C[/COLOR][/B] [ame="http://www.youtube.com/watch?v=7vh--3pyq5U"][COLOR=yellow]http://www.youtube.com/watch?v=7vh--3pyq5U[/COLOR ][/ame]
在这种情况下,此正则表达式不会匹配所有 3 个选项,而是将其视为一个。
任何想法如何制作一个匹配第一个 "[/ame]" 的表达式?
【问题讨论】:
-
欢迎来到 SO!始终尝试简化您的示例,使它们更小且更易于理解。还要让你更清楚你得到什么以及你实际得到什么。在这种情况下,如果您将每个
+都设为非贪婪+?是否不能解决您的问题?
标签: regex pcre regex-negation regex-lookarounds regex-greedy