【问题标题】:Regex that catches wrong defined attributes?捕获错误定义属性的正则表达式?
【发布时间】:2019-06-18 22:00:01
【问题描述】:

我正在尝试编写一个正则表达式来捕获定义的错误属性。

就我而言,plural="y" 和plural="n" 是仅有的两个正确定义,所以我想了解所有其他可能性,例如:

plural="no"
plural="m"
plural="yn"
plural="mu"
plural="hahahhaaha"

等等

【问题讨论】:

  • 您能分享您尝试过的代码/正则表达式吗?
  • 另外请注明您使用的语言,因为每种语言都有细微的差异。 (在这种情况下,为什么不直接与文字 Y 或 N 进行比较,而不是使用正则表达式呢?)
  • 我正在使用 Sublime 搜索,试图快速捕获 xml 文件中的问题属性。 - “Sublime Text 使用 Boost 库中的 Perl 兼容正则表达式 (PCRE) 引擎来支持搜索面板中的正则表达式。”谢谢!

标签: regex regex-negation


【解决方案1】:

您可以使用此正则表达式选择除plural="y"plural="n" 之外的任何字符串

\bplural="(?![yn]")[^"]+"

正则表达式解释:

  • \b - 避免在较大字符串中部分匹配复数的单词边界
  • plural=" - 从字面上匹配此文本
  • (?![yn]") - 如果后面的文本是 y"n"
    • [^"]+" - 匹配一个或多个任意字符,然后最终匹配 "

Demo

另一方面,如果你只想匹配plural="y"plural="n",你可以使用这个正则表达式,

\bplural="[yn]"

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 2018-03-11
    相关资源
    最近更新 更多