正则表达式用空格和所有标点符号分隔单词除外

时间:2018-02-10 16:14:19

标签: php regex regex-negation

我试图将文件拆分成单词,除以下面的标点符号' - '之外,用任何类型和任何数量的空格和标点符号分隔。我该怎么做?这是我现在所拥有的,但它并没有分开。

$words = preg_split("/((?![a-zA-Z'-’])\s)+/",$file);

1 个答案:

答案 0 :(得分:2)

使用preg_match_all更简单:

preg_match_all("~[A-Z'’-]+~ui", $str, $m);
$words = $m[0];

我添加了u修饰符,因为在ascii范围之外。 如果您需要除ascii字母,引号或连字符之外的其他字符,请将它们添加到字符类中。