2015-08-25 76 views
0

我有一个随机数量的单词的字符串,我需要找到单词之间和单词之间的随机文本。我设法在单词和单词之间获得随机文本,但在单词二之后,我只能得到随机文本中的一个字符。请看看我的代码,并让我知道我做错了什么。查找特定单词之间和之后的随机文本

$string = 'one randomText two randomText'; 
preg_match_all('/one\\s+(.+?)\\s+two\\s+(.+?)/i', $string, $matches); 
print_r($matches); 

预期输出:

Array ([0] => Array ([0] => one randomText two randomText) [1] => Array ([0] => randomText) [2] => Array ([0] => randomText)); 

实际输出:

Array ([0] => Array ([0] => one randomText two r) [1] => Array ([0] => randomText) [2] => Array ([0] => r)); 

回答

4

您可以使用:

preg_match_all('/one\s+(.+?)\s+two\s+(.+)/i', $string, $matches); 

这里最后不需要使用非贪婪(懒惰)量词,否则匹配会尽可能少(多于一个),因此只匹配r

相关问题