删除所有大写文本单词和冒号

删除所有大写文本单词和冒号

我希望能够使用 Notepad++ 的搜索(和替换)删除全部大写字母后跟冒号的单词 - 搜索然后从行中删除大写单词和冒号...示例:

BRYAN: What happened? OK Judy, Is it true?
CONNOR: Well... he is done.
BRYAN: That much is true.

我相信以下表达式将选择所有大写单词,但需要添加选项以在单词中包含冒号。

\b[A-Z]\w+[A-Z]\b

有人建议修改上面的行以选择冒号吗?

答案1

我将忽略问题的 Notepad++ 部分,并重点关注您提供的正则表达式和相关要求。

它看起来像 PCRE,因为它使用\w.在任何 RE 风格中,您都可以使用文字:本身。但底层 RE 的基础仍然是错误的,因此需要从头开始重新制定

  • 锚定到行的开头^
  • 匹配一个或多个大写字符[[:upper:]]+
  • 匹配冒号:
  • 后面有零个或多个空格\s*

结果是这样的

^[[:upper:]]+:\s*

您自己的表达式将匹配三个或更多字符的单词,其中第一个和最后一个字符是大写。所以BeD会匹配,就像 一样LONGEST,但JOdone不会。另请注意,您的解决方案和我的解决方案都不会处理包含标点符号的名称(单词),例如O'NEILLCHOLMONDELEY SMYTHE

相关内容