0

请帮我找到匹配项:

    <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)个匹配项。感谢你的帮助。

4

2 回答 2

4

这就是一对( )和一个.+?会派上用场的地方。尝试...

\<ptext\>\b(.+?)\b\</ptext\>

这有两件事。首先,自己使用的括号,不要与 OR 语句混淆(like|this),将在括号内专门返回,不一定是所有内容。其次,“懒惰”.+?将匹配 1 个或多个字符,直到第一个匹配,而不是最后一个匹配,才有效。这样,它应该只捕获每组项目而不是整个文件。

也不确定\b您的情况是否正确,仅供参考。因此,我会推荐...

\<ptext\>(.+?)\</ptext\>

例如,此代码应返回...

Array[0] = "This is a sentence"
Array[1] = "Here's another one."
于 2012-07-29T00:04:37.330 回答
2

使用非贪婪量词:

<ptext>.+?</ptext>
于 2012-07-29T00:01:30.553 回答