如何在PHP的preg_replace中保留'.'、'\'和':'字符?
解决正则表达式保留指定字符的问题
嘿,我来帮你调整这个正则表达式~
你原来的正则用的是否定字符类([^...]),意思是匹配所有不在这个集合里的字符,然后替换成空格。现在要保留.、\和:,只需要把这三个字符添加到允许的字符集合里就行啦!
需要注意两个小细节:
- 在PHP的单引号字符串中,要表示字面量的
\,得写成\\(因为\在字符串里是转义字符) .和:在正则的字符类里不需要转义,直接加进去就可以
修改后的代码如下:
$var1 = trim(preg_replace('/[^A-Za-z0-9\-\'\\\.:]/', ' ', $myString));
另外,也可以把-放在字符类的开头或者结尾,这样就不用转义它了,代码会更简洁一点:
$var1 = trim(preg_replace('/[^A-Za-z0-9\'\\\.:-]/', ' ', $myString));
很高兴听到你用Adlan提供的表达式已经得到了正确结果!如果那个无关的问题需要帮助,随时可以把细节说出来,大家一起帮你解决~
内容的提问来源于stack exchange,提问作者Nic
相关产品推荐
相关产品推荐

