【问题标题】:How to use preg_split to split string at whitespace between numbers?如何使用 preg_split 在数字之间的空白处拆分字符串?
【发布时间】:2014-01-29 21:35:02
【问题描述】:

我一直在尝试创建一个正则表达式,它只选择数字之间的空格,preg_split 可以拆分。

例如:

$string = "Unit 54 981 Mayne Street";

将返回为:

array() { 
  [0]=> "Unit 54" 
  [1]=> "981 Mayne Street" 
}

到目前为止,我没有运气。任何帮助将不胜感激!

【问题讨论】:

  • 查看前瞻和后向:由于它们正式不属于匹配项,因此它们将被保留,并且在拆分时仅删除空格。
  • 谢谢!这就是我正在尝试的,但我一定错过了一些尝试。

标签: php regex preg-split


【解决方案1】:

尝试使用lookaround assertions,如下所示:

$result = preg_split('/(?<=\d)\s+(?=\d)/', $string);

这将匹配一个或多个紧接在数字字符之前和之后的空白字符的任何序列。它产生这个数组:

Array (
    [0] => "Unit 54"
    [1] => "981 Mayne Street"
)

【讨论】:

  • 谢谢!这正好解决了我的问题。我的正则表达式非常接近,但存在致命缺陷。显然我必须等待七分钟才能接受你的回答。
  • @Sam- 很高兴我能帮上忙。但是,在将来,请确保您在问题中包含您的尝试。你会得到更好的结果,我们可以告诉你哪里出错了。
  • 谢谢,下次我会的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多