Php 更换所有的";。净清除率“;在用户代理中
我正在学习regex,并在用户代理上测试一些字符串查找/替换 我有几个用户代理:Php 更换所有的";。净清除率“;在用户代理中,php,regex,Php,Regex,我正在学习regex,并在用户代理上测试一些字符串查找/替换 我有几个用户代理: .NET CLR 11432 .NET CLR 2.0.2648 .NET CLR 1.0.1369 .NET CLR 2.0.90283 我可以替换“.net clr\d”,但它不能正常工作 $ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 4.1; .NET CLR 12858)'; $r = preg_replace('/.NET CLR
- .NET CLR 11432
- .NET CLR 2.0.2648
- .NET CLR 1.0.1369
- .NET CLR 2.0.90283
$ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 4.1; .NET CLR 12858)';
$r = preg_replace('/.NET CLR \d/i', '', $ua);
var_dump($r);
我得到:
Mozilla/4.0(兼容;MSIE 7.0;Windows NT 4.1;2858;.0.6143)
很明显我错过了什么,但是什么
谢谢使用
\d+
也可以转义圆点(
):
如果要删除数字(0-9
)+点(
),则
您的正则表达式不符合版本号的小数点,这就是为什么它在
之前匹配所有内容。将您的正则表达式更改为:
$r = preg_replace('/\.NET CLR [\d\.]+/i', '', $ua);
您想只替换
.NET CLR
还是替换后面的号码?@AmitJoki也替换号码
$r = preg_replace('/\.NET CLR [\d.]+/i', '', $ua);
$r = preg_replace('/\.NET CLR [\d\.]+/i', '', $ua);