【问题标题】:how to remove space character between number character? [duplicate]如何删除数字字符之间的空格字符? [复制]
【发布时间】:2012-08-13 05:25:06
【问题描述】:

我有这样的字符串:

$str = "old iccid : 809831 3245 345 new iccid : 999000 112221"

PHP中如何去掉数字字符之间的空格,变成这个输出?

$output = "old iccid : 8098313245345 new iccid : 999000112221";

【问题讨论】:

  • preg_replace() 如果你的词不混合字母和数字,就会这样做。

标签: php string space


【解决方案1】:

将数字与字符分开并使用

$str="809831 3245 345";
$foo= str_replace(' ','',$str);
echo $foo; // gives 8098313245345

【讨论】:

  • $str = "old iccid : 809831 3245 345 new iccid : 999000 112221" 的输出是什么???
  • @Havelock 这就是为什么我提到'将数字与字符分开'
  • 这是 100% 不正确的。证明:3v4l.org/ANLtJ 它删除了字符串中的所有空格,这不是我们想要的效果。
【解决方案2】:

$output = preg_replace( '/\d[ *]\d/', '', $str);

【讨论】:

  • 我又检查了一遍,那些代码运行不好..它是在空格附近删除字符,结果如下: $output = "old iccid : 80983245345 new iccid : 9990012221"跨度>
  • 这到底是什么!?!为什么这有3个赞成票?这无疑是错误的。证明:3v4l.org/DfJda 核对空格前的数字、空格和空格后的数字。
  • 前一个在所有情况下都不起作用(即:“3 835”=>“35”)。解决方案:preg_replace('/[^\d]/', '', $str)
【解决方案3】:

我从 xdazz (http://stackoverflow.com/users/762073/xdazz) 得到了答案,这种语法效果很好。

$output = preg_replace('/(?<=\d)\s+(?=\d)/', '', $str);

【讨论】:

  • 复制其他人的答案并将其重复发布到 Stackoverflow 上——对于 Stackoverflow 或其研究人员来说没有价值。
猜你喜欢
  • 2015-03-12
  • 2013-09-23
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 2015-06-15
  • 1970-01-01
  • 2018-05-15
  • 2020-07-29
相关资源
最近更新 更多