捕获错误定义属性的正则表达式?

时间:2019-01-25 04:34:39

标签: regex regex-negation

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

在我的情况下,复数=“ y”和复数=“ n”是仅有的两个正确定义,所以我想抓住所有其他可能性,例如:

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

1 个答案:

答案 0 :(得分:0)

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

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

正则表达式说明:

  • \b-避免在较大字符串中部分匹配多个单词的单词边界
  • plural="-完全匹配此文本
  • (?![yn]")-如果后面跟着的文本是y"n",则此否定的超前行为可确保将匹配项丢弃
    • [^"]+"-匹配一个或多个任意字符,然后最终匹配一个"

Demo

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

\bplural="[yn]"

Demo