【问题标题】:Negate a range of characters inside a character class in regex在正则表达式中否定字符类中的一系列字符
【发布时间】:2014-11-04 13:52:27
【问题描述】:

我正在尝试匹配不属于此正则表达式的任何内容 [_a-zA-Z]。 试过^[_a-zA-Z] 但这仅在行首匹配正则表达式。 解决这种情况的正则表达式应该是什么? 我在 flex 文件的规则部分使用它,给 [^_a-zA-Z] 抛出警告规则无法匹配。 有什么办法可以消除这个警告??

【问题讨论】:

  • 标签unixidentifier 在这里没有多大意义。我也相信这一定很容易使用搜索引擎找到。
  • @peter 编辑了问题。谢谢。
  • 感谢编辑。但是现在有一个flex 标签。对我来说,这似乎是一个纯粹的正则表达式问题。
  • 我试图在 flex 文件中使用它。所以包括它。

标签: regex flex-lexer


【解决方案1】:

^ 放在字符类中以否定它。

[^_a-zA-Z]

现在上面的类是一个否定类。

【讨论】:

  • 我太紧张了,我忘记了“^”也会否定 a-z.. 很抱歉发布这个问题.. 我现在应该删除这个问题吗?
  • @ManojBharadwaj 不,标记答案,以便对其他人也有帮助
  • 但是添加这个会在 lex 规则部分给出警告“警告,规则无法匹配”。为什么?
【解决方案2】:

我认为否定应该放在括号内。像这样:

[^_a-zA-Z]

你应该试试这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 2014-01-15
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多