gpt4 book ai didi

PHP Regex 关键字匹配

转载 作者:行者123 更新时间:2023-12-04 04:48:25 26 4
gpt4 key购买 nike

我有一个文本字段,用户将在其中输入逗号分隔的关键字或关键短语,然后服务器将使用这些值来检查多个文本正文是否匹配。

所以基本上我需要的是匹配一个准确的短语,不区分大小写,在正文中可能有空格。

通过生成以下正则表达式,我可以轻松匹配关键字:

示例关键字 :peanut, butter, jelly
正则表达式生成 :/peanut|butter|jelly/i
但是,有空格不起作用。即使我用 \s 替换给定值中的空格

示例 :peanut butter, jelly sandwich, delicious
正则表达式 :/peanut\sbutter|jelly\ssandwich|delicious/i
准确匹配短语的正确正则表达式是什么?不区分大小写并使用 PHP 的 preg_match ?

谢谢。

编辑

这就是我正在做的:

$keywordsArray = array_map( 'trim', explode( ',', $keywords ) );
$keywordsArrayEscaped = array_map( 'preg_quote', $keywordsArray );
$keywordsRegex = '/' . implode( '|', $keywordsArrayEscaped ) . '/i';

以上生成上述表达式(没有将空格替换为 \s ,因为它不起作用。)

接下来我简单做 preg_match( $keywordsRegex, $text );

最佳答案

我不明白为什么它不适用于空格或 \s .它应该。但是要笼统地回答您提出的问题,在正则表达式中匹配精确短语的方法是用 将它们括起来。\Q \E :

/\Q<phrase 1>\E|\Q<phrase 2>\E|\Q<phrase 3>\E/

这通常用于包含转义或正则表达式元字符的文本。你真的不应该需要空间。

关于PHP Regex 关键字匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com