这应该很简单,但我是一个菜鸟,我不能为我的生活弄明白。我正在尝试使用正则表达式匹配特殊打开/关闭标签内的文本:[p2] [/ p2]
所以在本文中:
apple [p2]banana[/p2] grape [p2]lemon[/p2]
它应匹配“banana”和“lemon”。我到目前为止所做的正则表达式是:
(?<=\[p2\]).+(?=\[\/p2\])
但这太贪心了。它与香蕉中的“b”匹配,以柠檬中的“n”结束,匹配香蕉[/ p2]葡萄[p2]柠檬。我如何才能匹配香蕉和柠檬?
答案 0 :(得分:5)
这应该这样做:
(?<=\[p2\]).+?(?=\[\/p2\])
我添加了问号,使量词不贪婪。
答案 1 :(得分:0)
您可以使用标准的perl样式匹配修饰符而不是使用正则表达式修饰符,并添加?在+或*之后告诉特定部分是非贪婪的。如上所述,但特异性可以提供帮助。