You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则仅删除字符串中非URL部分的数字

需求可直接通过PHP PCRE正则的(*SKIP)(*FAIL)语法实现,逻辑为:优先匹配所有URL并标记为跳过不参与替换,再执行原有的数字串删除规则即可。

最终代码

$story = preg_replace('/(?:\b(?:https?:\/\/)?\w+(?:\.\w+)+\/\S*)(*SKIP)(*FAIL)|\+?[0-9][0-9()\-\s+]{4,20}[0-9]/', '', $story);

效果验证

你提供的测试输入:

Call our company on 3453453454 or 0045 345 532 34 or visit our website domain.com/page/?id=article_1625463

经过上述代码处理后,输出与你期望的结果完全一致:

Call our company on or or visit our website domain.com/page/?id=article_1625463

补充说明

如果你的实际业务场景中存在特殊格式的URL,仅需要调整第一个分组中的URL匹配规则即可,当前默认规则已覆盖带/不带http/https前缀、带路径的常规域名URL场景,不会误删URL内的数字。


内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:27:03