2011-04-29 27 views
0

我有一个字符串,它包含一些我想要到达的单词,分隔符可以是由,;或空格组成的任何字符串。php通过使用正则表达式分隔单词

这里是一个例子:

;,osman,ali;, mehmet ;ahmet,ayse; , 

我需要的话osmanalimehmetahmetayse到一个数组或我可以由一个使用它们之一的任何类型。我尝试了使用preg函数,但我无法弄清楚。

如果有人帮忙,我会很感激。

回答

7
$words = preg_split('/[,;\s]+/', $str, -1, PREG_SPLIT_NO_EMPTY); 
  • [,;\s]是一个字符组,这意味着匹配任何包含在这个人物组
  • \s匹配任何空格字符(空格,制表符,换行符等)。如果这太多,请将其替换为空格:[,; ]
  • +表示匹配前面的一个或多个符号或组

DEMO

http://www.regular-expressions.info/是一个很好的网站,学习正则表达式。

+0

的\ s是可能仍然有效伊布的情况,但是它不只是空间。 \的设置还包括标签和新行。 - 只是没有人会感到困惑 – 2011-04-29 12:47:18

+0

@JonathanFingland:谢谢。我添加了一些信息。根据我的经验'\ s'通常更合适。 – 2011-04-29 12:49:24

3

你想用preg_split和使用[;,] +为你的正则表达式拆就

$keywords = preg_split("/[;, ]+/", $yourstring); 
1

拆分非单词字符:

$array=preg_split("/\W+/", $string);