【发布时间】:2012-11-20 00:14:49
【问题描述】:
Pattern.quote("pattern") 返回\Qpattern\E。如果字符串中没有元字符,是否真的有必要将字符串字面化?
【问题讨论】:
标签: java regex optimization pattern-matching
Pattern.quote("pattern") 返回\Qpattern\E。如果字符串中没有元字符,是否真的有必要将字符串字面化?
【问题讨论】:
标签: java regex optimization pattern-matching
我的猜测是它更简单、更高效。与其先检查是否有元字符,然后再进行第二次引用,只需假设存在元字符,并始终引用。
【讨论】:
不,没有必要,但这就是实施者选择做的事情,可能是为了简化实施,因为不必要的\Q 和\E 的成本相当小。
在我的JDK中,Pattern.quote()唯一关心的是模式中是否已经存在\Q和\E。它不会寻找任何其他特殊字符。
【讨论】: