0

请给我这个字符串:

$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"
         }

请我如何修改正则表达式以使其按我的意愿工作。谢谢。

4

4 回答 4

3

尝试:

<?php
$s = "Cannes (06150-06400), Limoges (87000-87100-87280), 06000, Paris";
preg_match_all("/[a-zA-Z]+/", $s, $villes);
var_dump($villes[0]);
?>

对于单个单词名称。变量转储:

array(3) {
  [0]=>
  string(6) "Cannes"
  [1]=>
  string(7) "Limoges"
  [2]=>
  string(5) "Paris"
}
于 2012-11-11T09:00:12.780 回答
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"
}
于 2012-11-11T09:11:33.223 回答
0
preg_match( '/[a-zA-Z\-\']+/', $s, $words );
var_dump( $words[0] );
于 2012-11-11T08:58:26.937 回答
0

您可以使用数组作为结果。

$arr=explode(' ' , $s);
print_r($arr);
于 2012-11-11T09:03:24.423 回答