2015-12-29 6 views
2

У меня есть адрес, какИсключить часть строки с использованием регулярного выражения

New street 4 
462005 MG Road 
Tel .: 02281/93-1-212 
Fax .: 02681/93-1148 

Я хочу строку перед «Тел» и удалить все, что приходит после того, как «Тел»

New street 4 
462005 MG Road 

Что я попробовал это

(?!^Tel$)(^.*$) 

Но его единственная дает первую строку. New street 4

Как достичь этого, используя регулярное выражение без какой-либо функции PHP.

+0

О, 'без какой-либо функции PHP' .. пропустил это важное обновление. – chris85

+0

@Adas Пожалуйста, обратите внимание, что я обновил свой ответ, чтобы вы не напортачили, когда название улицы включает строку 'Tel'. – timgeb

ответ

1

Убедитесь, чтобы активировать режим одиночной линии:

(?s).*?(?=Tel) 

Демо: https://regex101.com/r/dX7kU7/1

редактировать:
Немного улучшения: это обновленная версия должна быть чуть более надежной и останавливается, когда новая строка начинается с Tel, то есть вы не ввернуты, когда название улицы включает подстроку Tel: https://regex101.com/r/dX7kU7/2

+0

Бинго ... именно то, что мне нужно. большое спасибо @timgeb – Adas

+0

@Adas без проблем, счастливое кодирование – timgeb

0

Это должно сделать трюк

Заменить

([\s\S]*?)(Tel[\s\S]*) 

С

$1 
+0

Он дает с Tel, и я не хочу этого, я хочу только первые две строки адреса. – Adas

+0

@Adas Отвечено обновлено – buckley

0

Будьте оригинальным!)))

if (false !== $pos = strpos($str, 'Tel')) { 
    $str = substr($str, 0, $pos); 
} 
Смежные вопросы