非连续大写单词的正则表达式

标签 regex notepad++

这是给您的正则表达式向导。

这是在 Notepad++ 中使用的,即它直接输入到搜索和替换对话框中。

我需要匹配并突出显示嵌套在字符串中的两个或多个字符的大写字母的孤立单词,但大写单词不能连续,它们必须始终被小写单词包围(或小写名词第一个字母大写)或位于句子的开头或结尾,后面或前面有小写单词(或首字母大写的单词。

即。

给定字符串This is a sentence WITH some capitalized WORDS IN it.

我需要匹配“WITH而不是“WORDS”或“IN”,因为 WORDS 后面跟着另一个大写的单词,而 IN 前面有相同的单词。

应该假设字符串是多行的。

我尝试过前瞻但惨败

如有任何帮助,我们将不胜感激!

:-) 谢谢

最佳答案

您应该使用负向前瞻和负向后视检查周围的字符:

(?<![A-Z]\s)\b[A-Z]+\b(?!\s[A-Z])

Live demo

Notepad++ v6.5.1 & 也适用于多行目的

Notepad++ v6.5.1

关于非连续大写单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527107/

相关文章:

xml - 根据文件内容在 Notepad++ 中自动设置语言,而不是文件扩展名

html - Notepad++ HTML 整洁

regex - 如何在 MATLAB 中将字符串解析为字母、数字等?

javascript - 使用变量中的 gi 标志创建正则表达式

c# - 匹配可选的特殊字符

php - PHP正则表达式替换中的可选字符

java - 如何使用正则表达式抑制单行和多行注释?

c - 创建用户定义语言时如何包含 C 语言关键字的检测

xml - 在多个 XML 文件中批量查找和替换

regex - 在多行数据中提取 Notepad++ 中2个特定单词之间的字符串/数据