5

这应该很简单,但我是个菜鸟,我一生都无法弄清楚。我正在尝试使用正则表达式来匹配特殊打开/关闭标签内的文本:[p2][/p2]

所以在本文中:

apple [p2]banana[/p2] grape [p2]lemon[/p2]

它应该匹配“香蕉”和“柠檬”。到目前为止我研究过的正则表达式是:

(?<=\[p2\]).+(?=\[\/p2\])

但这也太贪心了。它匹配以香蕉中的“b”开头并以柠檬中的“n”结尾,匹配香蕉[/p2]葡萄[p2]柠檬。我该如何搭配香蕉和柠檬?

4

2 回答 2

5

这应该这样做:

(?<=\[p2\]).+?(?=\[\/p2\])

我添加了问号以使量词不贪婪。

于 2009-11-13T21:07:54.610 回答
0

除了使用正则表达式修饰符,您可以使用标准 perl 样式匹配修饰符并添加 ? 在 + 或 * 之后告诉该特定部分是非贪婪的。上面提到过,但特异性会有所帮助。

于 2009-11-13T21:19:59.750 回答