正则表达式匹配所有变量,但排除大写单词

Regex to match all variables, but exclude uppercase words

我是正则表达式初学者,在排除搜索模式时遇到了一些问题。我有一种使用大写单词作为关键字的领域特定语言:我想忽略这些,但我想捕获所有可能的变量名称。

示例变量名称:

一些示例关键字:

到目前为止我的正则表达式匹配所有但不排除大写关键字: \b[a-zA-Z0-9_{}]*\b

如何排除仅包含大写单词但与我的其他变量名称匹配的单词?

您可以使用 negative lookahead 来排除不需要的规则

\b(?![A-Z]+\b)[a-zA-Z0-9_{}]*\b

勾选proof

解释:

  • (?!...) negative lookahead,以下文本不得符合以下规则
  • (?![A-Z]+\b)如果下面的文字只用大写字母后跟单词边界,则测试失败