我有正则表达式:
(9[0-5[7-9]]{1}[\d]{10})|([0-2]\d{11})
此表达式适用于java,但不适用于php。 帮我转换成php
// true
System.out.println("123456789012".matches("(9[0-5[7-9]]{1}[\\d]{10})|([0-2]\\d{11})"));
System.out.println("973456789012".matches("(9[0-5[7-9]]{1}[\\d]{10})|([0-2]\\d{11})"));
System.out.println("000456789012".matches("(9[0-5[7-9]]{1}[\\d]{10})|([0-2]\\d{11})"));
// false
System.out.println("12345678901".matches("(9[0-5[7-9]]{1}[\\d]{10})|([0-2]\\d{11})"));
System.out.println("963456789012".matches("(9[0-5[7-9]]{1}[\\d]{10})|([0-2]\\d{11})"));
答案 0 :(得分:1)
答案 1 :(得分:0)
您的Java正则表达式可以重写为:
9[0-57-9]\d{10}|[0-2]\d{11}
由于Java String.matches()
确保整个字符串与正则表达式匹配,因此您需要在PHP中锚定正则表达式以获得相同的效果:
'~^(?:9[0-57-9]\d{10}|[0-2]\d{11})$~'