![删除所有大写文本单词和冒号](https://linux22.com/image/215238/%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E5%A4%A7%E5%86%99%E6%96%87%E6%9C%AC%E5%8D%95%E8%AF%8D%E5%92%8C%E5%86%92%E5%8F%B7.png)
我希望能够使用 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
,但JO
或done
不会。另请注意,您的解决方案和我的解决方案都不会处理包含标点符号的名称(单词),例如O'NEILL
或CHOLMONDELEY SMYTHE