我有一个像这样的字符串
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);
答案 0 :(得分:3)
返回一个字符串数组,每个字符串都是字符串的子字符串 通过将其分割成由字符串分隔符形成的边界而形成。
$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);