如何检查一个句子是否包含一个单词。我明确地使用名称句子和单词而不是字符串和子字符串。例如:对于句子
$s = "Ala makota, a kot ma przesrane";
调用函数
checkIfContains("kota",$s)
返回假。
但对于
checkIfContains("makota",$s)
返回真。
如何检查一个句子是否包含一个单词。我明确地使用名称句子和单词而不是字符串和子字符串。例如:对于句子
$s = "Ala makota, a kot ma przesrane";
调用函数
checkIfContains("kota",$s)
返回假。
但对于
checkIfContains("makota",$s)
返回真。
如果您只想匹配完整的单词,则需要一个正则表达式来完成此操作。尝试以下操作:
<?php
function checkIfContains( $needle, $haystack ) {
return preg_match( '#\b' . preg_quote( $needle, '#' ) . '\b#i', $haystack ) !== 0;
}
你需要strpos
.
if (strpos($s, 'kota') !== false) {
}
或者如果你坚持..
function checkIfContains($needle, $haystack) {
return (strpos($haystack, $needle) !== false);
}
对于完整的单词,您可以考虑正则表达式:
if (preg_match('/\bkota\b/i', $s)) { }
我会使用explode 将字符串分隔为基于字符的数组(在本例中为“”)。
function checkIfContains($toTest, $toCheck)
{
// Check if length of either string is zero for validation purposes
if(strlen($toTest) == 0 || strlen($toCheck) == 0)
{
return false;
}
$exploded = explode(" ", $toCheck);
foreach($exploded as $word)
{
if($word == $toTest)
{
// Found a match, return true!
return true;
}
}
// None matched, return false
return false;
}
你可以试试 :
function checkIfContains($needle, $haystack) {
// Remove punctuation marks
$haystack = preg_replace('/[^a-zA-Z 0-9]+/', '', $haystack);
// Explode sentence with space
$haystack = explode(' ', $haystack);
// Check if $needle exist
return in_array($needle, $haystack);
}
$string = "Ala makota, a kot ma przesrane";
checkIfInString("makota", $string);
function checkIfInString($needle, $haystack) {
$delimiters = ' ,.';
return in_array($needle, explode($haystack, $delimiters);
}
你可以试试:
if(strpos($s,"kota") !== false){
echo true;
}
或者 :
function checkIfContains($string, $letter){
return strpos($string, $letter) !== false;
}