PHP - 如果字符串包含超过5个字符的单词,则拆分字符串

时间:2010-10-31 23:03:24

标签: php string

正如主题所说,我需要一个递归函数,如果它包含的字长度超过(例如)5个字符,则会拆分字符串。

示例:

如果我有字符串“aaaaa aaa aaaa aaaaa”就可以了;

如果我有字符串“aaaaa bbbbbb aa aaaaa”我需要拆分1次(例如,在第一个bbbbb和最后一个b之前添加char#)。结果将是“aaaaa bbbbb#b aa aaaaa”

如果我像以前一样有字符串“aaaaa bbbbbbbbbbbbbbbb aa aaaaa”;注意这次大胆的一个有16个字符,所以这次我需要拆分3次:)

是否已经实现了任何PHP功能或者我需要制作它? 干杯

3 个答案:

答案 0 :(得分:3)

使用preg_replace:

echo preg_replace("`(\S{5})(?!\s|$)`", '$1#', "aaaaa bbbbbbbbbbbbbbbb aa aaaaa")
// aaaaa bbbbb#bbbbb#bbbbb#b aa aaaaa

注意我将每组5个字符替换为空格,后跟5个字符+#的空格。显然你可以用其他任何东西替换#。

答案 1 :(得分:1)

一种方法是使用split() 并使用像这样的正则表达式

[A-ZA-Z] {5}

所以

分裂( '[A-ZA-Z] {5}',$字符串);

编辑:刚注意到该函数已被DEPRECATED所以请改用preg_split

答案 2 :(得分:0)

$result = array();
$source = // assign source here
for($idx = 0; $idx < count($source); $idx += 5) {
    $result = substr($source, $idx, 5);
}