我正在使用PHP,其中包含以下字符串:
$message = 'hello, DavidPalmerUgroImmIErogandTagroChechiken ho are you?';
如果字符串的ANY字长word
,我想分割15 characters
。我怎么能这样做?
我搜索并找到了分割WHOLE字符串的答案,但是如果该特定字长度超过15个字符,则不仅仅是拆分WORD。请帮忙!
答案 0 :(得分:3)
这是一个相对的基本解决方案,有些东西你可以改进(更好的单词检测,14个字母,然后是连字符,用于中断的单词等),但这应该给你一个良好的起点。
你也可以用正则表达式(/[^\s]{15,}/
作为基本起点)来做到这一点,如果你对此感到满意 - 只需马匹参加课程: - )
将字符串拆分为单词:
$words = explode(' ', $message); // could also split on other punctuation or detect words more reliably here
迭代这些单词以查看是否有> 15个字母
foreach ($words AS $key => $word) {
if (strlen($word) > 15) {
// ...
}
}
然后当你找到一个时,把它切成更小的部分
$words[$key] = implode(' ', str_split($word, 15));
最后,加入所有备份。
$words = implode(' ', $words);
完整代码:
$words = explode(' ', $message); // could also split on other punctuation or detect words more reliably here
foreach ($words AS $key => $word) {
if (strlen($word) > 15) {
$words[$key] = implode(' ', str_split($word, 15));
}
}
$words = implode(' ', $words);
答案 1 :(得分:3)
你也可以尝试这样的事情。
$newMessage = preg_replace('/(\S{15})(?=\S)/', '$1 ', $message);
答案 2 :(得分:0)