我具有以下功能来执行句子"exact match"
中的模式($searchPat)
($sourceStr)
function isUsed($sourceStr, $searchPat) {
if (strpos($sourceStr, $searchPat) !== false) {
return true;
} else {
return false;
}
}
但是,这并不完全匹配。我按如下方式更改了功能,但这甚至没有执行。
function isUsed($sourceStr, $searchPat) {
if (preg_match("~\b[$sourceStr]\b~", $searchPat)) {
return true;
} else {
return false;
}
}
请问我该怎么做?
该[]
是字符类。上面列出了您要允许的字符,例如[aeiou]
允许使用元音。您的变量也按相反的顺序排列,首先是模式,然后是要匹配的字符串。试试这个:
function isUsed($sourceStr, $searchPat) {
if (preg_match("~\b$searchPat\b~", $sourceStr)) {
return true;
} else {
return false;
}
}
附加说明,这是区分大小写的,因此Be
不匹配be
。如果您传入的值将具有特殊字符,preg_quote
则应使用函数preg_quote($variable, '~')
。您可能还想连接变量,因此很明显这是一个变量,而不是正则表达式的一部分。的$
在正则表达式表示字符串的结束。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句