请帮我找到匹配:
<ptext>Any Sentence/tags goes here</ptext>
我现在的正则表达式是:
\<ptext\>\b.+\b\</ptext\>
但是,如果我将加倍例如:
<ptext>Any Sentence/tags goes here</ptext> <ptext>Any Sentence/tags goes here</ptext>
我的正则表达式将匹配ptext到最后一个ptext
我如何将其分开,以便在我给出的示例中匹配两(2)个匹配。感谢你的帮助。
答案 0 :(得分:4)
这是一对( )
和.+?
派上用场的地方。尝试...
\<ptext\>\b(.+?)\b\</ptext\>
这有两件事。首先,它们自己使用的括号,不要与OR语句(like|this)
混淆,将在括号内具体返回,而不是一切。其次,“懒惰”.+?
将匹配1个或多个字符,直到第一个匹配,而不是最后一个匹配,这是有效的。这样,它应该只捕获每组项目,而不是整个文件。
也不确定\b
是否适合你的情况,仅供参考。因此,我建议......
\<ptext\>(.+?)\</ptext\>
例如,此代码应返回...
Array[0] = "This is a sentence"
Array[1] = "Here's another one."
答案 1 :(得分:2)
使用非贪婪的量词:
<ptext>.+?</ptext>