Я новичок в Regex..I написала следующее регулярное выражение для проверки номера телефонов в JavaScript: ^[0-9\+\-\s\(\)\[\]\x]*$
Regex: Illegal последовательность шестнадцатеричного побег
Теперь я стараюсь то же самое в Java, используя следующий код:
public class testRegex {
public static void main(String[] args){
String regex="^[0-9\\+\\-\\s\\(\\)\\[\\]\\x]*$";
String phone="98650056";
System.out.println(phone.matches(regex));
}
Однако, я всегда получаю следующее сообщение об ошибке:
Exception in thread "main" java.util.regex.PatternSyntaxException:
Illegal hexadecimal escape sequence near index 21^[0-9\+\-\s\\(\\)\\[\\]\x]*$
Пожалуйста проконсультировать.
Не является ли '\ x' началом шестнадцатеричной escape-последовательности? Например, \ x0FF0. Посмотрите на регулярное выражение javascript, чтобы увидеть, что вы хотите, а не '\ x' – Squidly
. Вот точный javascript: var contactNumberRegExp =/^ [0-9 \ + \ - \ s \\ (\\) \\ [\\ ] \ х] * $ /; – TimeToCodeTheRoad
'\ x' - это начало байта' \ x0F' или около того. В java редко, потому что java использует unicode, '\ u000F' будет более регулярным. Является ли регулярное выражение символом «x»? Возможно, изначально было '\ x09' aka tab. Оставьте '\ x' вне. –