2016-06-22 2 views
0

Я пытаюсь совместить первые 4 слова во входной строке.Соответствие первых четырех слов с регулярным выражением

Моя картина: ([\w\’\s{3}])+

Мой содержание: test1 test2 test3 test4 test5 test6 test7

Я хочу получить: test1 test2 test3 test4

Все буквенные символы и есть не более 3 пространства.

+0

Вам просто нужно ['\ w +'] (https://regex101.com/r/vS3mA8/1) и метод для сопоставления по всему миру. –

+0

этого недостаточно:/ – Serhat

+0

Докажите, что это не так, я [has] (https://regex101.com/r/vS3mA8/1). На данный момент вопрос слишком неясен. –

ответ

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} - 3 последовательностями 1+ слов символов или ' символа следует с 1+
  • непечатаемых
  • [\w\']+ - 1+ слово или ' символами.
Смежные вопросы