PHP - 从字符串中删除所有非数字字符

b85*_*411 53 php string

我这样做的最佳方式是什么?我应该使用正则表达式还是我可以使用另一个内置的PHP函数?

例如,我想:12 months成为12.Every 6 months成为6,1M成为1

谢谢

pgu*_*how 103

在这种情况下你可以使用preg_replace ;

$res = preg_replace("/[^0-9]/", "", "Every 6 Months" );
Run Code Online (Sandbox Code Playgroud)

$ res在这种情况下返回6.

如果还要包含小数分隔符或千位分隔符,请检查以下示例:

$res = preg_replace("/[^0-9.]/", "", "$ 123.099");
Run Code Online (Sandbox Code Playgroud)

$ res在这种情况下返回"123.099"

包括小数分隔符或千位分隔符的句点:"/ [^^0-9.]/"

包括昏迷作为小数分隔符或千位分隔符:"/ [^ 0-9,] /"

包括句点和昏迷作为小数分隔符和千位分隔符:"/ [^^ 0 - ,.] /"

  • 提供的答案允许字符串保留逗号和句点.该问题要求删除所有非数字字符.这是一个小编辑(因为它只有2个字符,所以不太适合编辑),但删除所有非数字的答案应该是`$ res = preg_replace("/ [^ 0-9] /","","每6个月");` (10认同)

Avi*_*Raj 50

使用\D匹配非数字字符.

preg_replace('~\D~', '', $str);
Run Code Online (Sandbox Code Playgroud)

  • 也删除句号。这可能是一些人正在寻找的。 (3认同)
  • 也是最简单的,这就是我正在寻找的 (3认同)
  • 并且它删除了空格/换行符,这正是某些人正在寻找的:) (2认同)