gpt4 book ai didi

php - 字符串比较算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:31:23 24 4
gpt4 key购买 nike

我正在尝试编写一些 php 代码来检查一个名称是否包含在另一个名称中( bool 方法)。

我目前正在使用 strpos 来确定 str1 是否在 str2 中,但是我希望它更智能一些。即只检查 str1 是否单独存在,而不是另一个不相关的名称/字符串的一部分。

compareStrings(str1,str2)

例如

GAP & THISISNOTAGAP //should return false
GAP & IN THE GAP //should return true
GAP & GAP //shop return true

ROSS & CROSSROADS //should return false
ROSS & ROSS - CHICAGO //should return true

如果有内置函数或正则表达式我可以用来实现上述目标,有什么想法吗?谢谢。

最佳答案

Aasmund 完全正确。我认为我应该详细说明如何使用 PHP 完成它。

使用:preg_match()preg_quote() .

使用 preg_quote 很重要,这样带有正则表达式字符的单词就不会搞乱测试。

您的示例测试已包含在内。

<?php
function wordInString($word, $string) {
return preg_match('/\b'.preg_quote($word, '/').'\b/', $string);
}

$tests = array(
array('GAP', 'THISISNOTAGAP', false),
array('GAP', 'IN THE GAP', true),
array('GAP', 'GAP', true),

array('ROSS', 'CROSSROADS', false),
array('ROSS', 'ROSS - CHICAGO', true),
);

foreach($tests as $test) {
assert(wordInString($test[0], $test[1]) == $test[2]);
}

关于php - 字符串比较算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5439936/

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