Pattern.quote(“pattern”)返回\Qpattern\E
。如果字符串中没有元字符,是否真的有必要对字符串进行字面化?
答案 0 :(得分:5)
不,这没有必要,但这是实施者选择做的,可能是为了简化实施,因为不必要的\Q
和\E
的成本相当小。
在我的JDK中,Pattern.quote()
唯一关心的是模式中是否已有\Q
和\E
。它不会寻找任何其他特殊字符。
答案 1 :(得分:1)
我的猜测是,它更简单,更有效。而不是做第一遍以查看是否有元字符,然后第二遍引用它们,只是假设有元字符,并且总是引用。