两者似乎都符合双引号。
我知道\*匹配正则表达式中的字符* (http://www.digitalamit.com/article/regular_expression/2.phtml)
由于*是一个特殊字符,因此正则表达式使用反斜杠对其进行转义。
但是双引号不是正则表达式的特殊字符。那么为什么双引号前需要反斜杠呢?
在我公司的代码库中,他们使用Pattern.compile("\\\"")
发布于 2017-02-07 00:56:39
根据我的经验,我认为在双引号之前不需要反斜杠,在大多数情况下它不需要反斜杠:
System.out.println(Pattern.compile("^\"$").asPredicate().test("\""));结果为真
System.out.println(Pattern.compile("^\\\"$").asPredicate().test("\""));结果为真
System.out.println(Pattern.compile("^\\\"$").asPredicate().test("\\\""));结果为假。因此,如果您想匹配\“,则需要在regexp中添加双反斜杠:
System.out.println(Pattern.compile("^\\\\\"$").asPredicate().test("\\\""));结果为真。
如果你构建了一个正则表达式字符串,它需要在每个双引号之前添加反斜杠,除非你不能匹配反斜杠+双引号。
https://stackoverflow.com/questions/42072573
复制相似问题