正则表达式替换以特定char开头的文本中的行

时间:2012-10-30 15:21:13

标签: python regex

我正在研究正则表达式,但我无法使其正常工作。

使用这样的文字:

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. 

我想匹配以“Tom写道:”开头的文本的整个部分,并以以“>”开头的最后一行结束为了删除它并且只获得2个lorem ipsum句子。

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

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

Edit2:找到解决方案:

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

3 个答案:

答案 0 :(得分:1)

this one之类的工具中练习正则表达式。使您正则表达式的可视化变得非常容易。

根据需要调整此项并进行调整:

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

答案 1 :(得分:1)

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

有关详细信息,请参阅此答案: Regular expression matching a multiline block of text

答案 2 :(得分:1)

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

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

http://regexr.com?32l21