PHP连续两个单词正则表达式

时间:2013-12-02 01:44:45

标签: php regex

我是正则表达式的新手;我想制作一个正则表达式来选择两个连续的单词。我找到了一个相关的主题,但我没有得到正确的答案。

例如,这是一个短语:Color Image Processing with;

必须回复这几个词:

彩色图像

图像处理

使用

处理

我使用/\w{1,}\s\w{1,}/,但它返回:

彩色图像

处理;

2 个答案:

答案 0 :(得分:4)

您可以在此处使用Positive Lookahead

preg_match_all('/(?=([a-z]+\s+[a-z]+))[a-z]+/i', $text, $matches);
print_r($matches[1]);

输出

Array
(
    [0] => Color Image
    [1] => Image Processing
    [2] => Processing with
)

答案 1 :(得分:2)

$string = "Color Image Processing with ;";
$wordPairs = array();
preg_match_all('~\w+~',$string,$words);
foreach ($words[0] as $i => $word) {
  if (isset($words[0][$i+1]))
    $wordPairs[] = $word . ' ' . $words[0][$i+1];
}

print_r($wordPairs);

/* output */
Array
(
    [0] => Color Image
    [1] => Image Processing
    [2] => Processing with
)