许多类似的问题存在,我尝试了几个生成器,但好像找不到一个匹配的正则表达式。假设我有一个电话号码长这样:“345-324-3243 X039”,我想删除除数字、字母x和加号(出现在国际号码中)以外的所有内容。
这是我的当前无效的正则表达式和代码:
这是我的当前无效的正则表达式和代码:
$phone = "345-324-3243 X039";
preg_replace('[^\d|x|\+]', '', $phone);
我希望它输出的是"3453243243X039",但实际却输出了"30234-2349"。
+
已经被转义了,即使在字符类内部不需要转义。你关于|
是不必要的是正确的,但它不应该影响此输入的结果。 - Justin Morgan