简单的负面观察和“不”之间的正则表达差异。人物类

时间:2015-02-17 19:28:56

标签: regex

[^,]"(?<!,)"

进行比较

这些表达方式有何不同?不要他们都说&#34;给我所有的双引号,不要以逗号字符开头?&#34;

他们返回不同结果的情况是什么?

2 个答案:

答案 0 :(得分:2)

lookbehind和negated字符类之间的区别是:

  • 在匹配结果中捕捉到了后面的 ;这只是比赛的要求才能成为现实。 (?<!,)"表示引号不能以逗号开头,并且可能或可能不以任何其他字符开头。
  • 一个否定的字符类,在匹配结果中包含 [^,]"表示在引号前要求一个字符,只要它不是逗号就匹配。

答案 1 :(得分:1)

[^,]"匹配任何字符后出现的所有双引号但不包含逗号。这也匹配以前的非逗号字符。此正则表达式也不会与行开头出现的双引号相匹配。 [^,]必须使用一个字符,因为在开始时"之前没有字符,此正则表达式必须与开头的引号不匹配。

(?<!,)"匹配任何字符之后出现的所有双引号但不包含逗号,它与之前的非逗号字符不匹配。这也匹配出现在行首的双引号。 Lookarounds只是一个断言,它不匹配任何字符,但它断言匹配是否可能。