Php 匹配字符串中的精确字符串
我遇到了一个问题,代码为所有“女性”值返回“男性”,因为它还包含“男性”一词。我尝试了“~\bWord\b~”但没有成功 如何编辑下面的代码以返回不同的值Php 匹配字符串中的精确字符串,php,Php,我遇到了一个问题,代码为所有“女性”值返回“男性”,因为它还包含“男性”一词。我尝试了“~\bWord\b~”但没有成功 如何编辑下面的代码以返回不同的值 function replaceWords($value) { //here are predefined values $predefined = array( array( 'search'=>'Women', 'replaceWith'=>'Women' ), array( 'search'=>'Men', 'repl
function replaceWords($value) {
//here are predefined values
$predefined = array(
array(
'search'=>'Women',
'replaceWith'=>'Women'
),
array(
'search'=>'Men',
'replaceWith'=>'Men'
)
);
//search and replace
$found = false;
foreach ($predefined as $item) {
$search = array_map('trim', explode(',', $item['search']));
foreach ($search as $s) {
if (strstr(strtolower($value), strtolower($s))) {
$found = true;
$value = $item['replaceWith'];
break;
}
}
}
return ($found)?$value:"";
}
非常感谢您的帮助。请不要使用strtolower() 如果保持区分大小写,“女性”和“男性”将不匹配。这对我来说很有用:
if (preg_match("/\b".strtolower($s)."\b/i", strtolower($value)) ) {
您好,它将用不同的单词替换字符串为单个单词。例如“男人喜欢小部件”并将其改为“男人”谢谢,我也这么想。你能告诉我人们会怎么写:“如果(strstrstr(strtolower($value),strtolower($s)){”