php - 检查字符串中是否存在多个单词之一?

我有这样一个字符串:

$str = "it is a test";

我想检查这些词:it, test。如果字符串中有至少其中一个单词,我希望它返回 true

这是我所做的:(虽然它不起作用)

$keywords = array ('it', 'test');
if(strpos($str, $keywords) !== false){ echo 'true';}
else echo 'false';

我该怎么做?

最佳答案

使用 preg_match() 进行简单检查,您可以在模式中添加许多不同的单词,只需在单词之间使用分隔符 |

下面会匹配部分词,所以像pittestifyitinerary这样的大词会被匹配。该模式还区分大小写,因此 ItTest 将不会匹配。

$str = "it is a test";
if (preg_match("/it|test/", $str))
{
    echo "a word was matched";
}

抱歉,我不知道你在处理其他语言,你可以试试这个:

$str = "你好 abc efg";
if (preg_match("/\b(你好|test)\b/u", $str))
{
    echo "a word was matched";
}

我还需要提到 \b 表示单词边界,因此它只会匹配确切的单词。

https://stackoverflow.com/questions/33653956/

相关文章:

r - 将 3D 表面拟合到点数据集 [R]

windows - 使用 vmware 机器进行内核调试

arrays - 将数组附加到数组

sql - 基于两个表的select CASE语句

azure - 单个 Azure Web App 的多个实例是否共享单个磁盘?

verilog - systemverilog 中逻辑语句的非常量索引

three.js - 是否可以在 Three.js 中使用带缓冲几何的三角形带?

r - R中的钟形百分位曲线

c# - 在列表中查找一个属性包含重复值的对象

caching - 查找处理器的多级缓存的 AMAT 和 CPI