【问题标题】:Regex to match all variables, but exclude uppercase words正则表达式匹配所有变量,但排除大写单词
【发布时间】:2021-02-03 08:42:15
【问题描述】:

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

变量名示例:

  • VarWithCapitals
  • 变量
  • var_with_snake_case
  • var_with_{curly}_braces
  • Var_with_The_{kitchen123}_Sink

一些示例关键字:

  • CMD
  • 在结束时做

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

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

【问题讨论】:

    标签: regex regex-lookarounds regex-negation


    【解决方案1】:

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

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

    查看proof

    说明:

    • (?!...)negative lookahead,以下文字不得符合以下规则
    • (?![A-Z]+\b) 如果以下文本仅由大写字母和单词边界组成,则测试失败

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 2020-07-12
      相关资源
      最近更新 更多