将[^,]"
与(?<!,)"
这些表达方式有何不同?不要他们都说&#34;给我所有的双引号,不要以逗号字符开头?&#34;
他们返回不同结果的情况是什么?
答案 0 :(得分:2)
lookbehind和negated字符类之间的区别是:
(?<!,)"
表示引号不能以逗号开头,并且可能或可能不以任何其他字符开头。[^,]"
表示在引号前要求一个字符,只要它不是逗号就匹配。答案 1 :(得分:1)
[^,]"
匹配任何字符后出现的所有双引号但不包含逗号。这也匹配以前的非逗号字符。此正则表达式也不会与行开头出现的双引号相匹配。 [^,]
必须使用一个字符,因为在开始时"
之前没有字符,此正则表达式必须与开头的引号不匹配。
(?<!,)"
匹配任何字符之后出现的所有双引号但不包含逗号,它与之前的非逗号字符不匹配。这也匹配出现在行首的双引号。 Lookarounds只是一个断言,它不匹配任何字符,但它断言匹配是否可能。