如何使用正则表达式获取所有段落?

时间:2014-09-03 08:41:19

标签: regex

我的文字如下 -

<p>Some long text 1</p><p>Some long text 2</p><p>Some long text 3</p>

我想提取段落&#39;带正则表达式的文本。 但是,如果我使用正则表达式<p>(.*)<\/p>,我会得到Some long text 1</p><p>Some long text 2</p><p>Some long text 3,当我想获得3个元素时:Some long text 1Some long text 2Some long text 3。我应该如何纠正我的正则表达式?

3 个答案:

答案 0 :(得分:0)

让它变得非贪婪并从索引1中获取匹配的组。*是贪婪的,尽可能匹配。

<p>(.*?)<\/p>

online demo

详细了解✽ Want to Be Lazy? Think Twice.

尝试使用Possessive Quantifiers

<p>([^<]*+)<\/p>

demo

答案 1 :(得分:0)

(?<=<p>).*?(?=<\/p>)

这很有效。参见演示。

http://regex101.com/r/pP3pN1/13

答案 2 :(得分:0)

您可以尝试以下使用lookbehind和lookahead的reegx来匹配<p></p>标记之间存在的所有字符。

(?<=<p>)[^<>]*(?=<\/p>)

DEMO