用于打破重复字符的正则表达式

时间:2011-04-26 13:01:33

标签: php

我的网站上有一个评论框,我想要的是如果用户写入超过20个字符的输入(任何字符)并且不在它们之间放置空格,那么它应该在它之间放置一个空格。

喜欢:“asdasdasdasdasdasdasdasd”

解析:“asdasdasdasdasdasdas dasd”

我认为可以通过字符串比较完成,但我希望正则表达式匹配它或完整的解决方案。谢谢你的帮助。

2 个答案:

答案 0 :(得分:4)

它被称为自动换行。

http://php.net/manual/en/function.wordwrap.php

来自例子:

<?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, " ", true);
echo "$newtext\n";
?>

output:

A very long wooooooo ooooord.

答案 1 :(得分:1)

函数wordwrap很好地完成了这项工作。但这是一个基于正则表达式的解决方案:

$str = "asdasdasdasdasdasdasdasd";
$str = preg_replace('/(.{20})/','$1 ',$str);

即使输入的大小为20,也会添加空格。如果您不想使用它:

$str = preg_replace('/(.{20})(?=.)/','$1 ',$str);