php使用正则表达式分隔单词

时间:2011-04-29 12:39:09

标签: php regex preg-split

我有一个字符串,它包含一些我想要覆盖的单词,分隔符可以是由, ;或空格组成的任何字符串。

这是一个例子:

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

我需要将osman ali mehmet ahmetayse带到数组或任何我可以逐个使用的类型。我通过使用preg函数尝试了它,但我无法弄清楚。

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

3 个答案:

答案 0 :(得分:7)

$words = preg_split('/[,;\s]+/', $str, -1, PREG_SPLIT_NO_EMPTY);
  • [,;\s]是一个字符组,表示匹配此论坛中包含的任何字符
  • \s匹配任何空格字符(空格,制表符,换行符等)。如果这太多,只需用空格替换它:[,; ]
  • +表示匹配前面一个或多个符号或组

DEMO

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

答案 1 :(得分:3)

您想使用preg_split并使用[;,] +为您的正则表达式进行拆分

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

答案 2 :(得分:1)

拆分非单词字符:

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