服务器测评网
我们一直在努力

php8中使用正则匹配,不区分大小写的方法

在 PHP 中,如果你希望检测 $text 中的机器人的名字时,能够识别出不同的格式(例如大小写不同和带不带 @ 符号),可以使用 preg_match 函数进行正则匹配。这样可以不区分大小写,并可以匹配带 @ 符号的情况。

下面是一个修改的代码示例,它可以匹配 $this->telegramBotName(例如 @HzjcpBot)和 @hzjcpbot 的情况:

// 使用正则匹配,不区分大小写
    if (!preg_match('/@?(' . preg_quote(strtolower($this->telegramBotName), '/') . ')/i', strtolower($text))) {
        $this->output->info(date('Y-m-d H:i:s') . ' 没有给机器人发信息,不需要处理');
        continue;
    }

代码解释

  1. preg_quote: 这个函数用于转义 $this->telegramBotName 中的特殊字符,确保它在正则表达式中可以被安全使用。preg_quote 后面添加一个参数 / 用于指定转义的字符集(即 / 字符)。
  2. strtolower: 将传入的文本和机器人的名字都转换成小写,以便不区分大小写进行比较。
  3. preg_match: 正则表达式 /@?({$this->telegramBotName})/i 的意思是匹配可能带有 @ 符号的机器人名字,其中 i 修饰符表示匹配时不区分大小写。

通过这样的方式,无论用户输入的是 @HzjcpBot 还是 @hzjcpbot,都可以被正确识别。

赞(0) 打赏
未经允许不得转载:好主机测评网 » php8中使用正则匹配,不区分大小写的方法

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫