缘起:要处理一个很长很长的文本,有一定的规则,但又无法通过搜索替换直接修改。那么就用 python 吧。

当使用正则表达式进行文本处理时,有时我们需要删除一对特定符号之间的内容。例如,我们想删除成对出现的《和》之间的内容。

下面是一个使用 Python 编写的示例代码,可以实现这个功能,并让用户自定义要删除的符号。

以下是完整的代码:

import re

# 用户输入要删除的符号
start_symbol = input("请输入要删除的起始符号:")
end_symbol = input("请输入要删除的结束符号:")

# 转义符号中的特殊字符
start_symbol = re.escape(start_symbol)
end_symbol = re.escape(end_symbol)

# 获取输入文件路径和输出文件路径
input_file_path = input("请输入要处理的输入文件路径:")
output_file_path = input("请输入处理后的输出文件路径:")

try:
   # 打开输入文件并读取文本内容
   with open(input_file_path, 'r', encoding='utf-8') as file:
       text = file.read()

   # 构造正则表达式模式,并匹配删除符号之间的内容
   pattern = start_symbol + '.*?' + end_symbol
   text = re.sub(pattern, '', text, flags=re.DOTALL)

   # 打开输出文件并将处理后的文本写入
   with open(output_file_path, 'w', encoding='utf-8') as file:
       file.write(text)

   print("处理完成!")

except FileNotFoundError:
   print("文件路径错误,请重新输入正确的文件路径!")

在这段代码中:

** 首先,** 用户需要输入要删除的起始符号和结束符号。代码会自动将这些符号进行转义,以避免正则表达式语法冲突。

然后,用户需要输入要处理的输入文件路径和处理后的输出文件路径。程序会打开输入文件,并读取文件中的文本内容。

接下来,通过构造正则表达式模式来匹配要删除的符号之间的内容。使用 re.sub() 函数将匹配到的内容替换为空字符串,实现删除操作。通过添加 flags=re.DOTALL 参数,确保 . 元字符可以匹配包括换行符在内的任意字符。

最后,程序会打开输出文件,并将处理后的文本写入。处理完成后,会打印出 "处理完成!" 的提示信息。

当然,在运行代码之前,请确保输入文件存在,并且有足够的访问权限。

快用起来啵😚

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

flechazo 微信支付

微信支付

flechazo 支付宝

支付宝

flechazo 贝宝

贝宝