Показать сообщение отдельно
  #1 (permalink)  
Старый 16.12.2014, 06:44
Новичок на форуме
Отправить личное сообщение для -BO- Посмотреть профиль Найти все сообщения от -BO-
 
Регистрация: 16.12.2014
Сообщений: 2

Регулярное выражение работает не правильно, почему?
Столкнулся с проблемой: вот таким регулярным выражением в коде -> (?:г\. |г\.).*?(?:\,| ) пытаюсь найти название города по предшествующему набору символов "г." или "г. " в такой строке -> "Адрес: 119 296, Проспект Вернадского 7 E-mail: moscowcircus@mail.ru Телефон: (495) 930-13-26; факс (095) 930-43-15" Находит "го 7" (а по идее не должен)
Копирую и вставляю это же выражение и эту же строку в онлайн конструктор "http://regexpal.com/" или "http://www.pcre.ru/eval" - Все работает отлично!
В этой строке "Адрес: 115372, г.Москва ул. Бирюлевская д.49 кор.4, стр 2 E-mail: mag-005@mail.ru Телефон: +7 (495) 655-11-22; 655-11-48" название города находит отлично и в коде и в онлайн конструкторах!
Что же у меня не так?

Код прост:
var reg = new RegExp("(?:г\. |г\.).*?(?:\,| )", "i");
var str1 = "Адрес: 119 296, Проспект Вернадского 7 E-mail: moscowcircus@mail.ru Телефон: (495) 930-13-26; факс (095) 930-43-15";
var str2 = "Адрес: 105264, г. Москва, 9 я парковая д. 41 кв. 27 E-mail: info@valneriz.ru Телефон: (499)367-35-03";
console.log(reg.exec(str1));
console.log(reg.exec(str2));

Последний раз редактировалось -BO-, 16.12.2014 в 07:24.
Ответить с цитированием