用户输入"California city ca"
如果在输入中找到状态,则状态保存为
$state_code = find_state_code_input($full_location); //$state_code = "ca"
我有以下函数可以找到模式的第一个匹配项并将其替换为其他值
function str_replace_first($find, $replaceTo, $content) {
$find = '/'.preg_quote($find, '/').'/';
return preg_replace($find, $replaceTo, $content, 1);
}
如果找到状态,我会将其从原始完整字符串中删除
if (!empty($state_code))
$full_location = str_replace_first($state_code, "", $full_location);
//$full_location = "lifornia city ca"
但是输出是"lifornia city ca"
我怎么能这样做,以便只删除单词"ca"
而不删除包含这些字母的其他单词?即使在用户输入仅为"ca"
的情况下,我对正则表达式的体验也不尽如人意,我们将非常感谢
答案 0 :(得分:1)
答案 1 :(得分:0)
使用$:
$full_location = "california city ca";
$state_code = 'ca';
$find = '/'.preg_quote($state_code).'$/';
if (!empty($state_code))
$full_location = preg_replace($find, '', $full_location, 1);
echo $full_location;