对我来说,最好的方法是什么?我应该使用正则表达式还是我可以使用另一个内置的PHP函数?
例如,我希望:12 months
成为12
。 Every 6 months
成为6
,1M
成为1
等等。
谢谢
答案 0 :(得分:77)
在这种情况下,您可以使用preg_replace;
$res = preg_replace("/[^0-9]/", "", "Every 6 Months" );
在这种情况下,$ res返回6.
如果还要包括小数分隔符或千位分隔符,请检查此示例:
$res = preg_replace("/[^0-9.]/", "", "$ 123.099");
$ res返回" 123.099"在这种情况下
包括作为小数点分隔符或千位分隔符的句点:" / [^ 0-9。] /"
包括昏迷作为小数分隔符或千位分隔符:" / [^ 0-9,] /"
包括句点和昏迷作为小数点分隔符和千位分隔符:" / [^ 0-9,。] /"
答案 1 :(得分:39)
使用\D
匹配非数字字符。
preg_replace('~\D~', '', $str);