Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用正则表达式排除字符串的一部分_Php_Regex_Preg Match - Fatal编程技术网

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

Php 使用正则表达式排除字符串的一部分,php,regex,preg-match,Php,Regex,Preg Match,我有一个像这样的地址 New street 4 462005 MG Road Tel .: 02281 / 93-1-212 Fax .: 02681 / 93-1148 我想在“Tel”之前加上字符串,去掉“Tel”之后的任何内容 我试过的是 (?!^Tel$)(^.*$) 但它只给出了第一行。新街4号 如何在没有任何PHP函数的情况下使用正则表达式来实现这一点。这应该可以做到 替换 ([\s\S]*?)(Tel[\s\S]*) 与 确保激活单线模式: (?s).*?(?=Tel

我有一个像这样的地址

New street 4 
462005 MG Road 
Tel .: 02281 / 93-1-212  
Fax .: 02681 / 93-1148
我想在“Tel”之前加上字符串,去掉“Tel”之后的任何内容

我试过的是

(?!^Tel$)(^.*$)
但它只给出了第一行。新街4号


如何在没有任何PHP函数的情况下使用正则表达式来实现这一点。

这应该可以做到

替换

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


确保激活单线模式:

(?s).*?(?=Tel)
演示:

编辑:
一点改进:这个更新的版本应该更加健壮,当新行以
Tel
开头时停止,也就是说,当街道名称包含子字符串
Tel

是原创的!))时,你不会被搞砸


我不需要电话,我只需要前两行地址。答对了…正是我需要的。多谢各位@timgeb@Adas没问题,很高兴编写代码,
没有任何PHP函数
。。错过了那个重要的更新。@Adas请注意,我更新了我的答案,这样当街道名称包含字符串
Tel
时,您就不会上当了。
$1
(?s).*?(?=Tel)
if (false !== $pos = strpos($str, 'Tel')) {
    $str = substr($str, 0, $pos);
}