如何解决使用 Python 和 Notepad++ Unicode 格式的文本文件批量单词替换
我面临的问题是 Unicode 文本文件。Notepad++ 插件>python 脚本。
下面的代码完美地工作并替换包含 wordlist.txt 的单词。仅适用于英语。非 ASCII 无法搜索。我试过 With open('C:\Users\Desktop\wordlist.txt') as f:
--> with io.open('C:\Users\Desktop\wordlist.txt',encoding='utf-8') as f:
但记事本 ++ 对 Unicode 文字文本文件不起作用。
现在我需要帮助如何传递 unicode 字符串进行搜索。在下面的代码中。否则,请使用“单词列表查找并替换 A.text
文件中的分隔符”来帮助使用 Python 代码在 B.Text
文件中批量替换整个单词。
With open('C:\Users\Desktop\wordlist.txt') as f:
for l in f:
s = l.split()
editor.rereplace(r'\b' + s[0] + r'\b',s[1])
解决方法
不要使用会导致 utf8 字符出现问题的单词边界 \b
。改用环视:
import re
with open('D:\\temp\\wordlist.txt') as f:
for l in f:
s = l.split()
editor.rereplace(r'(?<!\S)' + s[0] + r'(?!\S)','\t' + s[1])
地点:
-
(?<!\S)
是一个否定的lookbehind,确保在要修改的单词之前没有非空格 -
(?!\S)
是一个否定前瞻,确保在要修改的单词之后没有非空格
通过您的 2 个示例文件,我得到了:
मारुती
नामशिवाया
जयश्रीराम
जयश्रीराम
- 注意:我在修改后的单词前添加了表格以方便可阅读性,请为您的应用程序删除它。
截图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。