楼主: 落叶无雨
1795 4

TXT文本: 查找替换同义词(跨行) [推广有奖]

教授

3%

还不是VIP/贵宾

-

威望
0
论坛币
31 个
通用积分
119.7218
学术水平
72 点
热心指数
85 点
信用等级
63 点
经验
7505 点
帖子
423
精华
1
在线时间
1527 小时
注册时间
2011-10-22
最后登录
2024-4-10

200论坛币

一、目标



     TXT文档中查找目标单词(跨行/非跨行),替换为指定单词,并按照原有格式写入TXT文档;

二、示例

     以 Environmental Regulaiton Policy 为例,目标单词 Environmental Regulaiton Policy 在 TXT 文档中可能存在以下形式, 如何将 Environmental Regulaiton  Policy 单词统一替换为 AAA BBB CCC,并按照原格式是写入TXT文档。

    微信截图_20200704152133.png


数据: demo.txt (1.48 KB)



      借助 python 如何实现呢,是否可以用正则表达式?

      盼望解答,感谢关注!







最佳答案

关键词:txt 同义词 environment Mental Policy
沙发
andruw 在职认证  发表于 2020-7-4 12:08:16 |只看作者 |坛友微信交流群
  1. import re

  2. with open('demo.txt', 'r') as f:
  3.     file = f.read()    #读取文件
  4.     pattern = re.compile(r'Environmental\s+Regulation\s+Policy') #正则表达式标示出所有可能组合
  5.     pattern_list = list(set(re.findall(pattern, file))) #找到所有pattern
  6.     replace_list = [] #生成替换pattern
  7.     for p in pattern_list:
  8.         p = p.replace("Environmental", "AAA")
  9.         p = p.replace("Regulation", "BBB")
  10.         p = p.replace("Policy", "CCC")
  11.         replace_list.append(p)

  12.     for (p, r) in zip(pattern_list, replace_list):
  13.         file = file.replace(p, r) #新pattern替换旧pattern

  14.     with open('done.txt', 'w') as f1:  #写入新文件
  15.         f1.writelines(file)
复制代码

使用道具

藤椅
幸运符 发表于 2020-7-7 00:55:32 |只看作者 |坛友微信交流群
用正则表达式就可以了。
import re

str1 = 'Environmental Regulaiton Policy 为例,目标单词 Environmental Regulaiton Policy 。。。。。 '
p1 = 'Environmental Regulaiton Policy'
p2 = 'AAA BBB CCC'
str1 = re.sub(p1,p2,str1)
#依此类推改循环。
已有 1 人评分经验 收起 理由
yunnandlg + 60 精彩帖子

总评分: 经验 + 60   查看全部评分

使用道具

板凳
落叶无雨 学生认证  发表于 2020-7-14 20:47:19 |只看作者 |坛友微信交流群
幸运符 发表于 2020-7-7 00:55
用正则表达式就可以了。
import re
谢谢你的回复,跨行的单词如何处理呢?

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 04:31