如何在 PHP 中以 2 个或多个连续空格分割字符串

Posted

技术标签:

【中文标题】如何在 PHP 中以 2 个或多个连续空格分割字符串【英文标题】:How to split a string at 2 or more consecutive spaces in PHP 【发布时间】:2013-06-17 23:36:33 【问题描述】:

我终于有了一个在 Stack Overflow for php 上尚未得到解答的问题。

我需要将城市、州、邮编保存在不同的变量中。给定字符串

$new = "PALM DESERT             SD63376        "

我正在尝试去除分组为 2 个或更多的空间,以便我可以在应有的情况下保留一个城市 2 个字。除此之外,我可以弄清楚,但我所有的搜索要么显示了如何用不同的语言 (Java) 分割字符串,要么显示了如何在一个我无法做到的空间处分割。

我正在尝试使用

$addr = preg_split('#^.*(?=\s2, )#', $new);

但我没有在PALM DESERT 和“SD63376     ”之间拆分字符串。请帮忙!

【问题讨论】:

一字城市呢?他们将如何处理?为什么这是一个字符串?你能在它达到这一点之前把它拆开吗? ***.com/questions/559363/matching-a-space-in-regex 这可能会有所帮助 不幸的是,它是从 mysql 传递到 php 的。它来自外部来源 虫族正在进化正则表达式?!?现在我们有两个以上的问题...... 简单的preg_split('/\s2,/', $new)怎么样? It seems to work fine. 【参考方案1】:

您可以使用以下内容:

$str = "PALM DESERT             SD63376        ";
// note that there are two spaces in the regex pattern
var_dump(preg_split('~  +~', $str, -1,  PREG_SPLIT_NO_EMPTY));

输出:

array(2) 
  [0] =>
  string(11) "PALM DESERT"
  [1] =>
  string(7) "SD63376"

【讨论】:

OP 希望“PALM”和“DESERT”保持在一起。 哎呀!我没有意识到这一点。给我一秒钟 波浪号有什么作用?没见过

以上是关于如何在 PHP 中以 2 个或多个连续空格分割字符串的主要内容,如果未能解决你的问题,请参考以下文章

C# split字符串 依据1个或多个空格

从list列表中以空格读取字符串 .java

需要一个包含至少一个数字、零个或多个字母、没有空格、最小/最大的正则表达式

C#如何分割多个空格分隔的字符串?

C#:将字符串中连续空格转换为一个空格

如何把一个字符串分割成多个字符串