【发布时间】:2014-08-17 22:46:14
【问题描述】:
我正在使用 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 个字符,将无法通过。我对正则表达式很陌生,实际上我得到了上面代码的帮助,但它并不完全是我的。
【问题讨论】:
-
如果你想学习如何自己做正则表达式,你应该尝试自己找到答案。在这种情况下,这并不难。
-
还可以考虑使用
preg_replace的第五个参数&$count,而不是运行两次正则表达式。