-4

我正在研究一个正则表达式,但我无法让它工作。

用这样的文字:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultricies congue feugiat. 

Tom wrote:
> blablabla
> this is very interesting 
> blabla blabla
> I ate a apple yesterday
> this is very interesting 
> blabla blabla

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ultricies congue feugiat. 

我想匹配以“汤姆写道:”开头并以“>”开头的最后一行结尾的整个文本部分,以便将其删除并仅获得 2 个 lorem ipsum 句子。

我不知道我是否足够清楚...

编辑:我正在考虑一个正则表达式,它匹配以“\w 写:”开头的所有内容,并且当它匹配换行符后跟一个不是“>”的字符时停止

Edit2:找到了解决方案:

\w+ wrote:(\n>[^\n]*)*
4

3 回答 3

1

看起来这就是您想要的(根据系统需要调整换行符)

\w+ wrote:\n(>.*\n)*(>.*)

http://regexr.com?32l21

于 2012-10-30T15:42:15.460 回答
1

跨多行匹配正则表达式需要指定多行匹配。

有关详细信息,请参阅此答案: 正则表达式匹配多行文本块

于 2012-10-30T15:33:55.217 回答
1

在这样的工具中练习您的正则表达式。可以很容易地可视化您的正则表达式正在做什么。

试一试,并根据需要进行调整:

Tom wrote:(.|\s)*>.*

于 2012-10-30T15:27:05.377 回答