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);
}