我是正则表达式的新手;我想制作一个正则表达式来选择两个连续的单词。我找到了一个相关的主题,但我没有得到正确的答案。
例如,这是一个短语:Color Image Processing with;
必须回复这几个词:
彩色图像
图像处理
使用
处理我使用/\w{1,}\s\w{1,}/
,但它返回:
彩色图像
处理;
答案 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
)