用正则表达式匹配前四个单词

时间:2016-06-22 22:08:38

标签: php regex

我正在尝试匹配输入字符串中的前4个单词。

我的模式:([\w\’\s{3}])+

我的内容:test1 test2 test3 test4 test5 test6 test7

我想得到:test1 test2 test3 test4

所有字母字符,最多有3个空格。

1 个答案:

答案 0 :(得分:2)

虽然您可以只使用explode(" ", $s),然后将前4个元素和imlode取回,但固定的正则表达式解决方案是

$re = '~(?:[\w\']+\s+){3}[\w\']+~'; 
$str = "Lorem  ipsum dolor sit amet, consectetur adipiscing elit."; 
preg_match($re, $str, $match);
echo $match[0];               // => Lorem  ipsum dolor sit

请参阅IDEONE demo,此处为regex demo

preg_match找到第一个与

匹配的4个单词
  • (?:[\w\']+\s+){3} - 包含1个字母字符或'符号的3个序列,后跟1个以上的空格
  • [\w\']+ - 1个字或'字符。