【问题标题】:Get At Least X Characters Before Keyword PHP在关键字 PHP 之前获取至少 X 个字符
【发布时间】: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的第五个参数&amp;$count,而不是运行两次正则表达式。

标签: php mysql regex


【解决方案1】:

如果我正确理解你想要匹配从 n 到 75 的任何字符,如果是这种情况,你所要做的就是:{10,75} 其中10n 数字(下) 限制在你的正则表达式中。

'#(.{10,75}' . $s . '.{10,75})#s'

【讨论】:

    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2021-05-10
    • 2021-05-17
    • 1970-01-01
    • 2011-07-31
    • 2015-06-29
    相关资源
    最近更新 更多