每当有5个空格时拆分字符串

时间:2014-06-15 09:39:52

标签: php regex

我有一个像这样的字符串

ADBL 489 ( 156 ) (  33 )     AHPC 434 ( 243 ) (  4 )     AIC 715 ( 200 ) (  50 )

我想把它分成三个字符串:

  • ADBL 489 ( 156 ) ( 33 )
  • AHPC 434 ( 243 ) ( 4 )
  • AIC 715 ( 200 ) ( 50 )

它们之间有5个空格。如何使用PHP中的正则表达式实现此目的。我尝试了这个,但它不起作用:

$splited_string = preg_split('/\s\s\s\s\s/', $string);

3 个答案:

答案 0 :(得分:3)

php.net / explode

  

返回一个字符串数组,每个字符串都是字符串的子字符串   通过将其分割成由字符串分隔符形成的边界而形成。

$array = explode("     ", $string);

如果您想再次返回字符串,可以使用implode

  

返回一个字符串,该字符串包含相同顺序的所有数组元素的字符串表示形式,每个元素之间都有粘合字符串。

$string = implode(" and ", $array);

如果您希望将5个(或更多)空格替换为其他空格:

$string = preg_replace("/\s{5,}/", " and ", $string); // {5} will make exact 5

你应该小心正则表达式。它是一个强大的工具,但是当轻量级选项没有时,你应该只装备大枪。在上面的例子中,这会更快,因为用于字符串操作的数组很少能够获得回报。

答案 1 :(得分:3)

类似的东西:

$pizza="ADBL 489 ( 156 ) (  33 )     AHPC 434 ( 243 ) (  4 )     AIC 715 ( 200 ) (  50 )";
$parts=explode("     ", $pizza);
echo $parts[0]; // ADBL 489 ( 156 ) (  33 )
echo $parts[1]; // AHPC 434 ( 243 ) (  4 )

答案 2 :(得分:1)

这样可行。

$str = 'ADBL 489 ( 156 ) (  33 )     AHPC 434 ( 243 ) (  4 )     AIC 715 ( 200 ) (  50 )';
$strings = explode('     ', $str);
print_r($strings);