为什么Pattern.quote总是返回带引号的字符串?

时间:2012-12-02 09:08:20

标签: java regex optimization pattern-matching

Pattern.quote(“pattern”)返回\Qpattern\E。如果字符串中没有元字符,是否真的有必要对字符串进行字面化?

2 个答案:

答案 0 :(得分:5)

不,这没有必要,但这是实施者选择做的,可能是为了简化实施,因为不必要的\Q\E的成本相当小。

在我的JDK中,Pattern.quote()唯一关心的是模式中是否已有\Q\E。它不会寻找任何其他特殊字符。

答案 1 :(得分:1)

我的猜测是,它更简单,更有效。而不是做第一遍以查看是否有元字符,然后第二遍引用它们,只是假设有元字符,并且总是引用。