2015-05-13 5 views
1

У меня есть строка, которая содержит международный номер телефона, например. +44 9383 33333, но bizzarely, когда я пытаюсь выполнить регулярное выражение (обратите внимание, что регулярное выражение корректно «экранировано») совпадение регулярных выраженийruby ​​regex не соответствует строке, если символ «+» в источнике

например.

"001144 9383 33333".match(/(001144|004|0|\\+44)/) # works 

"+44 9383 33333".match(/(001144|004|0|\\+44)/) # DOES NOT WORK 

Я попытался выйти из входной строки, например. +, \ + и т. д., но безрезультатно.

Я должен делать что-то действительно глупо здесь !?

ответ

7

У вас есть двойная обратная косая черта, которая говорит парсеру регулярного выражения искать буквальную обратную косую черту. Так как за ним также следует +, парсер регулярных выражений ищет 1 или более обратную косую черту. Попробуйте только \+ (так что все должно быть: /(001144|004|0|\+44)/

+0

IOW: это * не * "правильно сбежал". –

+0

как я сказал .. делаю что-то глупо! – Ben

Смежные вопросы