用于标记大写小心数据的正则表达式

时间:2013-07-24 02:49:39

标签: xml regex notepad++ regex-greedy

论坛成员,

我正在使用NotePad ++并且在其他文本数据中嵌入了一堆CAUTIONS。将“小心”数据与其余文本数据区分开来的两个常量是两个因素。一个是小心文本始终为大写文本,第二个小心文本始终以大写字母“小心”开头。以下是我所描述的一个小例子:

Bla bla bla bla bla。小心不要在没有首先阅读用户手册的情况下对机器进行维护。 Bla bla bla bla bla bla。

RegEx是否有可能找到以下文本的许多不同变体:

小心不要在没有首先阅读用户手册的情况下对机器进行维护。

然后用以下内容替换它:

 <caution><para>DO NOT PERFORM MAINTENANCE ON MACHINE WITHOUT FIRST READING THE OWNER'S MANUAL.</para></caution>

我需要帮助编写执行以下操作的RegEx:

  1. 能够定位始终以“注意”一词开头的数据(在大写中)
  2. 能够定位“注意”一词后面的所有大写文字,直到它变为小写文字。
  3. 删除添加XML标记后位于开头的“注意”一词。
  4. 不会被“Bla”一词中的大写“B”所欺骗(即“MANUAL.Bla”)。 换句话说,它在查找结果中不包括开始下一句的第一个大写字母。如何消除这种贪婪的关注?
  5. 这样的RegEx可能吗?世界上如何使RegEx足够聪明,只根据我所描述的内容找到与注意相关的文本?任何信息将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我没有专门的pad ++,所以尽管他们的正则表达式实现有任何怪癖,但这似乎可以解决问题:

CAUTION ([A-Z](([^a-z])+\s+)+) 

替换

<caution><para>$1</caution></para> 

请在此处查看:

http://regexr.com?35mku