如何检查一个字符串是否包含特定单词?

考虑:

$a = 'How are you?';

if ($a contains 'are')
    echo 'true';

假设我有上面的代码,写下语句if ($a contains 'are')的正确方法if ($a contains 'are')什么?


你可以使用strpos()函数来查找一个字符串在另一个字符串中的出现:

$a = 'How are you?';

if (strpos($a, 'are') !== false) {
    echo 'true';
}

请注意,使用!== false是故意的; strpos()返回干草堆字符串中针串开始的偏移量,或者如果未找到针,则返回布尔值false 。 由于0是一个有效的偏移量,0是“falsey”,所以我们不能使用像!strpos($a, 'are')这样的简单结构。


您可以使用正则表达式,与其他用户提到的strpos相比,它更适合字词匹配,对于字符串也会返回true,例如票价,护理,注视等。这可以通过使用字边界在正则表达式中简单地避免。

一个简单的匹配可以看起来像这样:

$a = 'How are you?';

if (preg_match('/bareb/',$a))
    echo 'true';

在性能方面,strpos快三倍,记住,当我一次做了一百万次比赛时,赛前比赛花了1.5秒完成,而且花费了0.5秒。


使用strpos功能:

if (strpos($a, 'are') !== false)
    echo 'true';
链接地址: http://www.djcxy.com/p/221.html

上一篇: How do I check if a string contains a specific word?

下一篇: Case insensitive 'Contains(string)'