Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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_String - Fatal编程技术网

删除除数字以外的所有内容的PHP代码

删除除数字以外的所有内容的PHP代码,php,regex,string,Php,Regex,String,我试图删除字符串中的所有内容,但只删除数字(0-9) 我以为这会管用的 echo preg_replace("[^0-9]","",'604-619-5135'); 但它呼应“604-619-5135”。我错过了什么 试试这个: preg_replace('/[^0-9]/', '', '604-619-5135'); preg_replace使用PCREs,通常以/开头和结尾 您需要将模式括在分隔符中-通常使用斜杠(/)。试试这个: echo preg_replace("/[^0-9]/"

我试图删除字符串中的所有内容,但只删除数字(0-9)

我以为这会管用的

echo preg_replace("[^0-9]","",'604-619-5135');
但它呼应“604-619-5135”。我错过了什么

试试这个:

preg_replace('/[^0-9]/', '', '604-619-5135');

preg_replace使用PCREs,通常以
/
开头和结尾

您需要将模式括在分隔符中-通常使用斜杠(/)。试试这个:

echo preg_replace("/[^0-9]/","",'604-619-5135');

这是为未来的开发人员准备的,您也可以尝试一下。太简单了

echo preg_replace('/\D/', '', '604-619-5135');

对于那些不想使用正则表达式的人来说,更实用的方法是:

$data = filter_var($data, FILTER_SANITIZE_NUMBER_INT);

注意:它也适用于电话号码。

内部/双引号与PCRE tho无关。显然(在
(?flags)
)之前的日子里,设计/编写函数/API的人认为用双引号
/flags
形式传递正则表达式标志是个好主意,而不是使用额外的函数参数。@Qtax:好的,是的,我知道这就是我们从(“g/re/p”)中得到“grep”这个词的原因,我是来自未来的开发者。这确实很好地满足了我们的需要。谢谢。我来自比Zesda更远的未来,我可以确认,这仍然是一个帮助。我已经回来了2未来,我可以确认他们仍然没有找到更好的方法。我是最远未来的最后一个开发者。我很难过地说,这已经没有任何用处了。你们不该用这么多塑料吸管,相信我,你们到了这里就会明白了。。。。如果你能做到的话。仅供参考:我们在39世纪仍然使用这个。
FILTER\u SANITIZE\u NUMBER\u INT
留下加号
+
和减号
-
,不仅仅是数字。是的,我说过它适用于+905360000000这样的电话号码,但忽略了所有其他字符。例如,如果您尝试将其与Whatsapp一起使用,这是一个问题,因为WA不允许+符号!