如何使用正则表达式捕获文本中特定的行块?

时间:2018-01-27 19:45:41

标签: regex notepad++ regex-group

我正在使用带有正则表达式的Notepad ++查找和替换工具。

我正在使用的文本片段如下所示:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec dignissim neque. Maecenas condimentum tellus at mauris dictum, nec accumsan augue lacinia. Phasellus condimentum erat ante, a cursus tortor ultricies eu. Curabitur auctor sem ac dignissim interdum.

Me --- Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Her --- Curabitur suscipit arcu justo, et scelerisque nunc commodo ac.

Me --- Nunc luctus, ligula vel porta convallis, augue mauris lobortis quam, ut volutpat sapien felis a erat.

Her --- Sed id pellentesque risus.    

Curabitur vehicula vitae est vel tempus. In quam augue, condimentum et mauris pellentesque, dignissim tempor libero. Morbi placerat posuere velit nec varius. Praesent vitae quam egestas, ultrices tortor sit amet, porttitor mauris. Etiam hendrerit vitae ante vitae posuere. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

我想要做的是从“Me --- Lorem ipsum ......”开始捕捉文本,直到“... pellentesque risus”。这样我就可以在其上放置一个LaTeX格式,这将导致:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec dignissim neque. Maecenas condimentum tellus at mauris dictum, nec accumsan augue lacinia. Phasellus condimentum erat ante, a cursus tortor ultricies eu. Curabitur auctor sem ac dignissim interdum.

\begin{fancyquote}
Me --- Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Her --- Curabitur suscipit arcu justo, et scelerisque nunc commodo ac.

Me --- Nunc luctus, ligula vel porta convallis, augue mauris lobortis quam, ut volutpat sapien felis a erat.

Her --- Sed id pellentesque risus.    
\end{fancyquote} 

Curabitur vehicula vitae est vel tempus. In quam augue, condimentum et mauris pellentesque, dignissim tempor libero. Morbi placerat posuere velit nec varius. Praesent vitae quam egestas, ultrices tortor sit amet, porttitor mauris. Etiam hendrerit vitae ante vitae posuere. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

问题是,文本块可以以“Me ---”或“Her ---”开头,它们也可以以任何一种方式结束。

到目前为止,我有(\ nMe --- | Her ---),它可以使用任一选项正确启动分组,但我在尝试使用正则表达式终止选择时遇到了麻烦。我想说的是,比较任何东西(包括换行符),除非你看到换行符然后不是(“她---”或“我 - ”)。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

找到:

((?:^(?:Me|Her) ---.*\s+)+)

替换为:

\\begin{fancyquote}\n\1\\end{fancyquote}\n\n

结果:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec dignissim neque. Maecenas condimentum tellus at mauris dictum, nec accumsan augue lacinia. Phasellus condimentum erat ante, a cursus tortor ultricies eu. Curabitur auctor sem ac dignissim interdum.

\begin{fancyquote}
Me --- Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Her --- Curabitur suscipit arcu justo, et scelerisque nunc commodo ac.

Me --- Nunc luctus, ligula vel porta convallis, augue mauris lobortis quam, ut volutpat sapien felis a erat.

Her --- Sed id pellentesque risus.    

\end{fancyquote}

Curabitur vehicula vitae est vel tempus. In quam augue, condimentum et mauris pellentesque, dignissim tempor libero. Morbi placerat posuere velit nec varius. Praesent vitae quam egestas, ultrices tortor sit amet, porttitor mauris. Etiam hendrerit vitae ante vitae posuere. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.