0

为什么以下不起作用?

<?php
 $text = 'Hell   looo   w  orlldddddd!!!!!!!!!';
 $sanitized = preg_replace("/(\w|\s)\1{1,}/mi","$1",$text);
 echo $sanitized;
 ?>

预期的输出应该是:你好!

谢谢

4

2 回答 2

1

尝试这个:

$text = 'Hell   looo   w  orlldddddd!!!!!!!!!';
$sanitized = preg_replace('/(\w|\s|.)\\1+/', '$1',$text);
 echo $sanitized;

输出:

Hel lo w orld!

在这种情况下,这是您可以使用正则表达式做的最好的事情。

于 2012-12-20T17:03:49.790 回答
-1

您忘记了正则表达式中的斜线:

/(\w|\s)/\1{1,}/mi
于 2012-12-20T17:08:10.747 回答