【问题标题】:Need a very specific RegEx Filter需要一个非常具体的 RegEx 过滤器
【发布时间】:2022-01-07 23:33:12
【问题描述】:

好的,所以。 我需要一个单一的正则表达式来捕获除“[Swear]”之外的所有“[variable]”情况。 我弄清楚了第一部分,^\[[a-zA-Z]+\] 对我来说已经足够好了。 我也得到了第二部分 - ^((?!\[Swear\]).)*$gets 除了特定短语“[Swear]”之外的所有内容

现在,很遗憾,我不知道如何将两者结合起来——我希望它能够捕捉到任何有方括号的东西,除非方括号的内容是“发誓”

如果您需要更多详细信息,我可以尝试更具体

【问题讨论】:

  • 虽然我认为@Ryszard 的解决方案最好,但您可以改为匹配\[Swear\]|(\[[a-zA-Z]+\]),唯一相关的匹配是捕获到第 1 组的匹配。这个想法是匹配您不想要的并捕获你想要什么。

标签: regex


【解决方案1】:

使用

\[(?!Swear\])[a-zA-Z]+\]

regex proof

解释

--------------------------------------------------------------------------------
  \[                       '['
--------------------------------------------------------------------------------
  (?!                      look ahead to see if there is not:
--------------------------------------------------------------------------------
    Swear                    'Swear'
--------------------------------------------------------------------------------
    \]                       ']'
--------------------------------------------------------------------------------
  )                        end of look-ahead
--------------------------------------------------------------------------------
  [a-zA-Z]+                any character of: 'a' to 'z', 'A' to 'Z'
                           (1 or more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  \]                       ']'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多