我需要替换:
$about = " .....I......#### ";
。e.g。
$about = " .....I......# ";
应该成为
$about = preg_replace("/[^\w^.]{2,}/","$1",$about);
我写了一个正则表达式:
axis off;
但它不起作用。我怎样才能做到这一点?
答案 0 :(得分:2)
您的模式[^\w^.]{2,}
匹配除了^
和.
之外的其他两个或多个字符。
要匹配除字和点以外的连续相同字符,您可以使用
([^\w.])\1+
并替换为$1
。
请参阅regex demo。
详细:
([^\w.])
- 匹配并捕获第1组中除字char和点\1+
- 匹配1次或多次捕获到第1组的值。替换模式仅插入匹配字符的单个匹配项。
$re = '/([^\w.])\1+/';
$str = ' .....I......#### ';
$subst = '$1';
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is '".$result . "'";