Проблема с обнаружением косой черты в шаблоне регулярного выражения preg_replace

Я использую preg_replace для строки, которая может содержать номера улиц. Шаблон, который я использую:

([A-Za-z0-9]*)/i

Это отлично работает для таких чисел, как 1, 1a, 123 и т. д.

Однако он не принимает номера улиц, такие как 1/54B.

Я попытался добавить косую черту к шаблону следующим образом:

([A-Za-z0-9\/]*)/i

Но он не собирает числа вроде 1/54B.

Любые идеи о том, что я должен использовать?


person BaronGrivet    schedule 19.07.2010    source источник


Ответы (2)


Пытаться

preg_replace('#([A-Za-z0-9/]*)#i', $repl, $subj);

Использование альтернативных разделителей значительно упрощает задачу.

person Matthew Flaschen    schedule 19.07.2010

Я понял, что в этом примере я упустил из виду, что косая черта переводилась в код, удобный для URL (% 2F), поэтому

([A-Za-z0-9\%]*)/i

работал на эту ситуацию. Да, я чувствую себя глупо.

Спасибо Матвею за полезный совет. Собираюсь файл, что один прочь.

person BaronGrivet    schedule 20.07.2010