如何用PHP preg_replace移除&符号?及移除空格与&符号的方法
嘿,我来帮你搞定这两个PHP正则相关的问题!
问题1:如何使用PHP的preg_replace函数移除&符号?
其实很简单!你只需要用preg_replace匹配&这个字符,然后把它替换成空字符串就行。举个实际例子:
$original = "I love PHP & regex!"; $processed = preg_replace('/&/', '', $original); echo $processed; // 输出: I love PHP regex!
如果你的字符串里还有HTML实体形式的&(也就是转义后的&),上面的正则只能替换单独的&,要是想连&一起处理,咱们看第二个问题的解决方案~
问题2:移除字符串内所有空格与&符号(含HTML实体)
看你的示例字符串里是&而不是单纯的&,之前的代码只处理了空格,没碰这个HTML实体,自然达不到预期效果。咱们可以把空格和&(或者所有&相关的形式)放到同一个正则匹配里,用|表示“或者”的逻辑,这样就能一次性替换掉所有目标内容了。
直接上能满足你需求的代码:
$string = "this is my string & this also"; // 匹配任意数量的空格,或者HTML实体& amp; $cleanString = preg_replace('/\s+|&/', '', $string); echo $cleanString; // 完美输出: thisismystringthisalso
如果你担心字符串里可能同时存在单独的&和&,可以把正则改成更通用的版本,两种情况都能覆盖:
$cleanString = preg_replace('/\s+|&(amp;)?/', '', $string);
简单解释下这个正则:
\s+:匹配一个或多个空白字符(空格、制表符这类都包含在内)|:逻辑“或”,用来分隔两个不同的匹配规则&(amp;)?:匹配&,后面跟着可选的amp;(?表示前面的分组是可选的),这样不管是单独的&还是转义后的&都会被匹配替换
这样处理后,就能得到你想要的无空格、无&相关内容的字符串啦~
内容的提问来源于stack exchange,提问作者JGeer
相关产品推荐
相关产品推荐

