使用正则表达式排除字符串的一部分

时间:2015-12-29 13:20:44

标签: php regex preg-match

我有一个像

这样的地址
New street 4 
462005 MG Road 
Tel .: 02281 / 93-1-212  
Fax .: 02681 / 93-1148

我想要字符串" Tel"并删除" Tel"

之后发生的任何事情
New street 4 
462005 MG Road 

我试过的是

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

但它只提供第一线。 新街4

如何在没有任何PHP函数的情况下使用正则表达式实现此目的。

3 个答案:

答案 0 :(得分:1)

确保激活单线模式:

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

演示:https://regex101.com/r/dX7kU7/1

修改的:
稍微改进一下:这个更新版本应该更加强大,当新行以Tel开头时停止,即当街道名称包含子串Tel时,您不会被搞砸:{ {3}}

答案 1 :(得分:0)

这应该可以解决问题

替换

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

使用

$1

答案 2 :(得分:0)

原创! )))

if (false !== $pos = strpos($str, 'Tel')) {
    $str = substr($str, 0, $pos);
}