如何批量处理100行文本,保留-rrb-之后的内容?
嘿,这个需求很明确,我给你几个不同场景下的实现方案,你可以根据自己常用的工具来选:
方法一:用Python脚本处理(适合有基础的开发者)
如果你会点Python,写个小脚本就能批量处理,逻辑简单还灵活:
import re # 读取原文件 with open("input.txt", "r", encoding="utf-8") as f: lines = f.readlines() # 处理每一行 processed_lines = [] for line in lines: # 用正则匹配-rrb-及其前面的所有内容,替换为空 # \s* 是为了去掉-rrb-后面可能的空格 new_line = re.sub(r".*-rrb-\s*", "", line).strip() processed_lines.append(new_line + "\n") # 写入处理后的文件 with open("output.txt", "w", encoding="utf-8") as f: f.writelines(processed_lines)
这个脚本会读取input.txt里的每一行,把从开头到-rrb-(包括后面的空格)的内容全部删掉,只保留后面的部分,最后存到output.txt里。
方法二:用Notepad++ 正则替换(适合非编程用户)
如果你不想写代码,用Notepad++的正则替换功能就能搞定,步骤如下:
- 打开你的文本文件
- 按下
Ctrl+H打开替换窗口 - 点击左下角的「正则表达式」选项(确保不要选「.匹配换行符」)
- 在「查找目标」里输入:
.*-rrb-\s* - 在「替换为」里留空
- 点击「全部替换」,搞定!
这个正则的意思是:.*匹配任意字符(直到最后一个-rrb-),-rrb-匹配你要找的标记,\s*匹配标记后面的所有空格,把这些内容全部替换成空,就剩下后面的文本了。
方法三:用Shell命令(Linux/macOS 终端用户)
如果你用Linux或者macOS,直接在终端里用sed命令一行就能处理:
sed 's/.*-rrb- //' input.txt > output.txt
解释:sed是流编辑器,s/old/new/是替换命令,这里把从开头到-rrb- (注意后面有个空格)的内容替换成空,结果输出到output.txt里。如果你的-rrb-后面可能有多个空格,把命令改成sed 's/.*-rrb-\s*//' input.txt > output.txt就行(需要GNU sed,大部分Linux发行版默认是GNU sed,macOS可能需要加-E参数:sed -E 's/.*-rrb-\s*//' input.txt > output.txt)
测试一下你给的示例:
原行:Lorem ipsum -lrb- dolor -rrb- sit amet, consectetur adipiscing elit....
处理后都会变成:sit amet, consectetur adipiscing elit....,完全符合你的要求~
内容的提问来源于stack exchange,提问作者NawaW

