如何将含指定大小写敏感关键词的文本行移至文本框顶部/底部
多行文本按指定大小写敏感关键词移动行的实现方法
以下提供两种常见场景的实现方案,分别针对网页文本框交互和本地文本文件处理,同时支持将目标行移至顶部或底部,并高亮标记。
一、网页端文本框实时处理(JavaScript)
适用于网页中的<textarea>或富文本框,可实现实时处理并高亮目标行:
// 核心处理函数 function processText(moveToTop = false) { const textarea = document.getElementById('textInput'); const output = document.getElementById('output'); // 定义大小写敏感的目标关键词 const targetKeywords = ['APPLES', 'ORANGES']; // 拆分文本为行,过滤空行 const lines = textarea.value.split('\n').filter(line => line.trim() !== ''); // 分离目标行与普通行 const targetLines = []; const normalLines = []; lines.forEach(line => { const hasTarget = targetKeywords.some(key => line.includes(key)); if (hasTarget) { targetLines.push(`<strong>${line}</strong>`); // 用strong标签高亮 } else { normalLines.push(line); } }); // 按需求拼接结果 const finalLines = moveToTop ? [...targetLines, ...normalLines] : [...normalLines, ...targetLines]; // 输出结果(若用普通textarea可替换为finalLines.join('\n')) output.innerHTML = finalLines.join('<br>'); }
使用方式
在HTML中添加对应元素:
<textarea id="textInput" rows="5" cols="60"> Bob likes GRAPES but not oranges. John likes APPLES but not pears. Patrick likes ORANGES but not apples. Joe likes PEARS but not oranges. </textarea> <br> <button onclick="processText(true)">移至顶部</button> <button onclick="processText(false)">移至底部</button> <div id="output"></div>
二、本地文本文件处理(Python)
适用于批量处理本地文本文件,处理后可生成带高亮标记的结果文件:
def process_local_text(input_file, output_file, keywords, move_to_top=False): # 读取输入文件 with open(input_file, 'r', encoding='utf-8') as f: lines = [line.rstrip('\n') for line in f if line.strip()] target_lines = [] normal_lines = [] for line in lines: # 判断是否包含目标关键词(大小写敏感) if any(key in line for key in keywords): # 用**作为纯文本高亮标记,可按需替换 target_lines.append(f'**{line}**') else: normal_lines.append(line) # 拼接结果 result_lines = target_lines + normal_lines if move_to_top else normal_lines + target_lines # 写入输出文件 with open(output_file, 'w', encoding='utf-8') as f: f.write('\n'.join(result_lines)) # 调用示例 if __name__ == '__main__': target_keywords = ['APPLES', 'ORANGES'] # 将目标行移至底部 process_local_text('input.txt', 'output.txt', target_keywords, move_to_top=False)
示例效果
输入文本
Bob likes GRAPES but not oranges.
John likes APPLES but not pears.
Patrick likes ORANGES but not apples.
Joe likes PEARS but not oranges.
移至底部的输出文本
Bob likes GRAPES but not oranges.
Joe likes PEARS but not oranges.
John likes APPLES but not pears.
Patrick likes ORANGES but not apples.
内容的提问来源于stack exchange,提问作者Cake Princess
相关产品推荐
相关产品推荐

