我对正则表达式有点生疏,因此希望得到帮助。对于当前的项目,我需要清理一些用户输入并将缩写的英国县名称转换为它们的详细对应项(例如 Lincs => Lincolnshire)。
我编写了一个使用正则表达式来处理这个问题的函数,因为我们只想在缩写位于字符串的开头,或者前面是逗号或空格,然后是空格(或字符串)时进行替换终止)。
因此,考虑 的示例Lincs
,应该发生以下替换:
Boston, Lincs
=> Boston, Lincolnshire
(因为Lincs
前面有空格)
Lincs
=> Lincolnshire
(因为Lincs
在字符串的开头)
Test, Lincsto
=>Test, Lincsto
因为Lincs
后面有其他字符)
这是该函数现在的样子:
function fullCounties()
{
$replacements = array(
'lincs' => 'Lincolnshire'
);
$new = $_REQUEST['place'];
foreach($replacements as $find => $replace)
{
$new = preg_replace('/(^|\W)'.$find.'([\W\d])/', $replace, $new);
}
echo $new;
}
但这只是返回 Boston, Lincs
,而不是预期的Boston, Lincolnshire
。任何人都可以解释正确的正则表达式以符合上述要求,或者建议为什么这个不起作用?