我有这个字符串:
$s = "Cannes (06150-06400), Limoges (87000-87100-87280), 06000, Paris";
我只想在数组中存储单词,所以我尝试了这个:
$villes = explode(',', preg_replace('#\(([0-9\-]*)\)#', '', $s));
但结果我得到了这个数组:
array(4) {
[0]=>
string(7) "Cannes "
[1]=>
string(9) " Limoges "
[2]=>
string(7) " 06000" // This shouldn't be displayed in the array
[3]=>
string(6) " Paris"
}
请问我如何修改正则表达式以使其按预期工作。感谢。
答案 0 :(得分:3)
尝试:
<?php
$s = "Cannes (06150-06400), Limoges (87000-87100-87280), 06000, Paris";
preg_match_all("/[a-zA-Z]+/", $s, $villes);
var_dump($villes[0]);
?>
对于单个单词名称。 Var转储:
array(3) {
[0]=>
string(6) "Cannes"
[1]=>
string(7) "Limoges"
[2]=>
string(5) "Paris"
}
答案 1 :(得分:1)
尝试
$arr = preg_split('/\s*\(?[\d\-\s]*\)?\s*,\s*/', $s, -1, PREG_SPLIT_NO_EMPTY);
var_dump($arr);
输出
array(3) {
[0] =>
string(6) "Cannes"
[1] =>
string(7) "Limoges"
[2] =>
string(5) "Paris"
}
答案 2 :(得分:0)
preg_match( '/[a-zA-Z\-\']+/', $s, $words );
var_dump( $words[0] );
答案 3 :(得分:0)
你可以使用数组作为结果。
$arr=explode(' ' , $s);
print_r($arr);