我正在用php和mysql做一个小的搜索系统。
我有这个:
preg_match('#(.{75}' . $s . '.{75})#s', $b, $match);
if (isset($match[1])) {
return preg_replace('#(.+?)' . $s . '(.+)#s', '$1<span><b>' . $s . '</b> </span>$2', $match[1]);
} else {
return 'Error';
}
这可以很好地获得关键字的第一次出现,并在其前后获得75个字符。唯一的问题是,如果少于75个字符,它将无法通过。我对正则表达式很陌生,我实际上得到了上面代码的帮助,它不完全是我的。
如果我正确理解了您想要匹配从n
数字到75的任何字符,如果这是您的情况,您所要做的就是:{10,75}
其中10
是您的regex中的n
数字(较低)限制。
'#(.{10,75}' . $s . '.{10,75})#s'