You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按句号及每5词规则在字符串中插入<br>标签?

实现你的换行标签插入需求

我来给你提供两种主流语言的实现方案,完全匹配你提出的两个规则:

核心规则回顾

  1. 每个句号(.)之后插入<br>标签
  2. 仅对单词数超过5的句子,每5个单词后插入<br>标签

Python 实现

def insert_br_tags(input_str):
    # 按句号分割所有句子片段
    parts = input_str.split('.')
    processed_parts = []
    
    for i, part in enumerate(parts):
        # 去除片段首尾空白,跳过空内容
        part_stripped = part.strip()
        if not part_stripped:
            continue
        
        # 拆分单词,自动处理多空格情况
        words = part_stripped.split()
        word_count = len(words)
        
        if word_count > 5:
            # 每5个单词为一组,用<br>连接
            grouped_words = []
            for j in range(0, word_count, 5):
                grouped_words.append(' '.join(words[j:j+5]))
            processed_part = '<br>'.join(grouped_words)
        else:
            # 单词数≤5,直接拼接原句
            processed_part = ' '.join(words)
        
        # 统一首字母大写(匹配示例输出格式)
        processed_part = processed_part.capitalize()
        
        # 非最后一个片段,添加".<br>";最后一个片段直接保留(去掉原句结尾的句号)
        if i != len(parts) - 1:
            processed_parts.append(f"{processed_part}.<br>")
        else:
            processed_parts.append(processed_part)
    
    return ''.join(processed_parts)

# 测试示例输入
input_text = "This is a string. For demo to split the text. If its long more then 5 characters. But some string is short. And it will not split. the short length string it will only split the long string which is more then 5 words."
print(insert_br_tags(input_text))

代码逻辑说明

  1. 先把输入字符串按句号分割成独立片段,处理掉每个片段的首尾空格
  2. 对每个片段拆分单词,判断单词数量:
    • 单词数>5:每5个单词分组,用<br>连接各组
    • 单词数≤5:直接拼接成原句
  3. 统一将每个片段首字母大写,保证格式一致性
  4. 非末尾片段添加.br>,末尾片段去掉原句的句号(匹配示例输出)
  5. 拼接所有处理后的片段得到最终结果

JavaScript 实现

如果你需要在前端场景使用,可以用这个版本:

function insertBrTags(inputStr) {
    const parts = inputStr.split('.');
    const processedParts = [];
    
    parts.forEach((part, index) => {
        const partStripped = part.trim();
        if (!partStripped) return;
        
        // 用正则拆分单词,兼容多个连续空格的情况
        const words = partStripped.split(/\s+/);
        const wordCount = words.length;
        
        let processedPart;
        if (wordCount > 5) {
            const grouped = [];
            for (let i = 0; i < wordCount; i += 5) {
                grouped.push(words.slice(i, i + 5).join(' '));
            }
            processedPart = grouped.join('<br>');
        } else {
            processedPart = words.join(' ');
        }
        
        // 首字母大写处理
        processedPart = processedPart.charAt(0).toUpperCase() + processedPart.slice(1);
        
        // 处理末尾片段的格式
        if (index !== parts.length - 1) {
            processedParts.push(`${processedPart}.<br>`);
        } else {
            processedParts.push(processedPart);
        }
    });
    
    return processedParts.join('');
}

// 测试示例输入
const inputText = "This is a string. For demo to split the text. If its long more then 5 characters. But some string is short. And it will not split. the short length string it will only split the long string which is more then 5 words.";
console.log(insertBrTags(inputText));

内容的提问来源于stack exchange,提问作者Julina357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:44:04