Javascript正则表达式不适用于Java

时间:2012-04-26 09:29:25

标签: java javascript regex

我有这个Javascript手机正则表达式: /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/

字符串“063-444-444”成功通过。

我尝试将其转换为Java:

^([\\+][0-9]{1,3}[ \\.\\-])?([\\(]{1}[0-9]{2,6}[\\)])?(\\[0-9 \\.\\-\\]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$ 

Java中的相同String失败。怎么了?

1 个答案:

答案 0 :(得分:4)

您尚未正确转义。您不需要在字符类周围转义括号([])。

尝试:

^([\\+][0-9]{1,3}[ \\.\\-])?([\\(]{1}[0-9]{2,6}[\\)])?([0-9 \\.\\-\\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$