我试图找到一个最优化的雷管,以便把(如果有的话)N字重新放在另一个面,以便总结一下。 “词”的定义大于[a-z]。 作为参考词的插图可以放在一句话的中间,或者不会由空间直接环绕。
我已经走到了以下几条工作,但似乎在寻找彼此之间超过6至7个字时实际上感到贪 gr和cho:
/(?:[^s
]+[s
]+[^s
]*){0,4}lorem(?:[^s
]*[s
]+[^s
]+){0,4}/u
这是PHP方法I ve所建的,但我需要帮助使监管机构不太贪.,并努力使用围绕任何几个字。
/**
* Finds N words around a specified word in a string.
*
* @param string $string The complete string to look in.
* @param string $find The string to look for.
* @param integer $before The number of words to look for before $find.
* @param integer $after The number of words to look for after $find.
* @return mixed False if $find was not found and all the words around otherwise.
*/
private function getWordsAround($string, $find, $before, $after)
{
$matches = array();
$find = preg_quote($find);
$regex = (?:[^s
]+[s
]+[^s
]*){0, . (int)$before . } .
$find . (?:[^s
]*[s
]+[^s
]+){0, . (int)$after . } ;
if (preg_match("/$regex/u", $string, $matches)) {
return $matches[0];
} else {
return false;
}
}
如果我有以下经费:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras auctor,
felis non vehicula suscipit, enim quam adipiscing turpis, eget rutrum
eros velit non enim. Sed commodo cursus vulputate. Aliquam id diam sed arcu
fringilla venenatis. Cras vitae ante ut tellus malesuada convallis. Vivamus
luctus ante vel ligula eleifend condimentum. Donec a vulputate velit.
Suspendisse velit risus, volutpat at dapibus vitae, viverra vel nulla."
简称。 口头说明(数额、简历、8、8) 我想要取得以下结果:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras auctor,
felis non vehicula suscipit,"
感谢您的帮助。