对正则表达式使用原始字符串。在替换中,您需要转义中的反斜杠
\1
.
没必要打电话
re.compile()
对于只使用一次的regexp。您可以直接将字符串传递给
re.sub()
.
#!/usr/bin/env python3
# coding=utf8
import re
syr_unicodes_dict = {
r'([\u0712\u0713\u0715\u071F\u0726\u072C])\u073F': '\\1\u0741',
r'([\u0712\u0713\u0715\u071F\u0726\u072C])\u073C': '\\1\u0742',
r'^([\u0712\u0713\u0715\u071F\u0726\u072C])': '\\1\u0741',
r' ([\u0712\u0713\u0715\u071F\u0726\u072C])': ' \\1\u0741',
r'([\u0730-\u073B]\u0710\u0020[\u0712\u0713\u0715\u071F\u0726\u072C])\u0741': '\\1\u0742',
r'([\u073E\u073D]\u0718\u0020[\u0712\u0713\u0715\u071F\u0726\u072C])\u0741': '\\1\u0742',
r'([\u0730-\u073B]\u0710\u0308\u0020[\u0712\u0713\u0715\u071F\u0726\u072C])\u0741': '\\1\u0742',
r'\u0712\u0742\u0020\u0712\u0741': '\u0712\u0741\u0020\u0712\u0741',
r'\u0713\u0742\u0020\u0713\u0741': '\u0713\u0741\u0020\u0713\u0741',
r'\u0715\u0742\u0020\u0715\u0741': '\u0715\u0741\u0020\u0715\u0741',
r'\u071F\u0742\u0020\u071F\u0741': '\u071F\u0741\u0020\u071F\u0741',
r'\u0726\u0742\u0020\u0726\u0741': '\u0726\u0741\u0020\u0726\u0741',
r'\u072C\u0742\u0020\u072C\u0741': '\u072C\u0741\u0020\u072C\u0741',
r'\u072C\u0742\u0020\u0715\u0741': '\u072C\u0741\u0020\u0715\u0741',
r'\u0715\u0742\u0020\u072C\u0741': '\u0715\u0741\u0020\u072C\u0741',
r'\u0712\u0742\u0020\u0726\u0741': '\u0712\u0741\u0020\u0726\u0741',
r'\u0713\u0742\u0020\u071F\u0741': '\u0713\u0741\u0020\u071F\u0741',
r'\u071F\u0742\u0020\u0713\u0741': '\u071F\u0741\u0020\u0713\u0741',
r'\u0741\u0741': '\u0741',
r'\u0742\u0742': '\u0742'
}
print('length of Syriac_unicodes_dict is ' + str(len(syr_unicodes_dict)))
text_file = open('./matthew.txt', 'r', encoding = 'utf-8')
revised_text_file = open('./matthew_fixed.txt', 'w')
with text_file, revised_text_file:
for line in text_file:
for old_value, new_value in (syr_unicodes_dict.items()):
new_line = re.sub(old_value, new_value, line, re.UNICODE)
line = new_line
revised_text_file.write(new_line)
没有必要使用
{1}
在正则表达式中。除非另有量化,否则子模式只匹配1次。
我得到的输出是:
1 ÜÝܰÜÝ ÜÝܶÜÜ¢ ÜܶܬÝܺÜÜ Ü¶ÜÝ ÜܶܫܽÜÜ¥ ÜÝÜÝܶÜÜ¬Ý Ü Üܶܡ ÜÝܺÜÜܽÜÜÝܳÜÜ ÜÝÜܰÜܡܰÜÌ ÜܶܪܳÜÜÝܶܣ Ü¡Ü°Ü ÜÝܳÜÜ ÜܶܬÝÜ°Ü Ü¡ÜÝܽÜܫܶÜÌ Ü¡Ü¶Ü¢ ܡܰÜÝÜ¢ÜÜ³Ü Ü Ü½ÜÜÜªÜºÜ«Ü Ü¶Ü¡Ü
2 ÜܳÜܡܪܺÜÜ¢Ü ÜܰÜÜÝÜ°Ü Ü¡Ü°Ü ÜÝÜ³Ü ÜÝܺÜÜܽÜÜÝܳÜܶÜÌ ÜÝܶÜܬÝܺÜÜ Ü¶ÜÝÜ ÜÜܰÜÜ¢ ÜÝܶÜܪ ÜÝܰÜÜÝÜÝÜ¶Ü ÜÝܡܰÜÝÜ¢ÜܳÜÜ ÜܶÜܬÝܰÜÜ¢ Ü Ü¡Ü¶Ü£ÜÝܰÜÝ Ü Ü¶ÜÜ
3 ܫܡܰܥ ÜÝܶÜÜ¢ ÜܶܪܳÜÜÝܶܣ Ü¡Ü°Ü ÜÝܳÜÜ ÜܶÜܬÝܬÝÜܺÜÜ¥Ü ÜÜÝÜ½Ü Ü³Ü ÜܽÜÜªÜºÜ«Ü Ü¶Ü¡ ܥܰܡܶÜÜ
4 ÜÜÝܰܢܶܫ ÜÝÜ½Ü ÜܽÜÜ¢ ܪÌܰÜÜ°Ü ÜÝܳÜܢܶÜÌ ÜܣܳܦÝܪÌÜ¶Ü ÜÝܥܰܡܳÜÜ ÜܰܡܫܰÜÜ¶Ü Ü̱ÜÜ³Ü Ü ÜܽÜÜ¢Ü ÜÝܰÜÜÜÝÜ³Ü Ü¡Ü¶Ü¬ÝܺÜÜ Ü¶ÜÝ Ü¡Ü«ÜºÜÜܳÜÜ
5 ÜܶܢܽÜÜ¢ ÜÝܶÜÜ¢ ÜܶܡܰܪÜÜ ÜÝÜÝܶÜÜ¬Ý Ü Üܶܡ ÜÝܺÜÜܽÜÜÝܳÜÜ ÜܳÜÝÜ°Ü¢Ü³Ü ÜÝܶÜܪ ÜÝܬÝܺÜÜÝ ÜÝܰܢÜÝܺÜܳÜÜ
6 ÜÜ³Ü¦Ý Üܰܢ̱ܬÝÜ ÜÝܶÜÜ¬Ý Ü Üܶܡ ÜÝܺÜÜܽÜÜÝܳÜÜ Ü Ü³Ü ÜÜܰÜܬÝÜ ÜÝܨܺÜÜªÜ³Ü ÜÝÜ¡Ü°Ü ÜÝܶÜÌ ÜÝܺÜÜܽÜÜÝܳÜÜ Ü¡Ü¶Ü¢Ü¶ÜÝÜ ÜÝܶÜܪ ܢܶܦܽÜÜ© Ü¡Ü°Ü ÜÝܳÜÜ ÜÝÜÜ½Ü Ü¢Ü¶ÜªÜ¥Ü¶ÜÜÜÌ±Ü Ü Ü¥Ü°Ü¡Ü ÜܺÜܣܪܳÜÜÜ¶Ü Ü
7 ÜܳÜÜܶÜÜ¢ ÜܶܪܳÜÜÝܶܣ ܡܰÜÜ«ÜܳÜܺÜÜ¬Ý Ü©ÜªÜ³Ü Ü Ü°Ü¡ÜÝܽÜܫܶÜÌÜ ÜܺÜÜ Ü¶Ü¦Ý Ü¡Ü¶Ü¢ÜܽÜÜ¢ ÜÝܰÜÜÜ¢Ü³Ü ÜܰÜÝÜ¢Ü³Ü ÜܶܬÝÜÜÜºÜ Ü ÜܽÜÜ¢ ÜÝܰÜÜÝÜÝܳÜÜ
8 ÜܫܰÜÝܰܪ ÜܶܢܽÜÜ¢ Ü ÜÝܶÜÜ¬Ý Ü ÜÜ¶Ü¡Ü ÜܶÜܡܰܪ Ü ÜܽÜÜ¢Ü ÜÜ¶Ü Ü Ü¥Ü°Ü©Ü¶ÜÝÜÜ Ü¥Ü°Ü ÜÜ°Ü ÜܳÜÜ ÜܦÝܺÜÜܳÜܺÜܬÝÜ ÜÜ¡Ü³Ü ÜÝܶÜÜ«ÜÝܰÜܬÝܽÜܢܳÜÜ̱ÜÜ Ü¬ÝÜ°Ü ÜܰÜܰÜÜܽܢÜÜ ÜÝܳÜÜ¦Ý ÜÜ¶Ü¢Ü³Ü ÜܺÜÜ°Ü ÜܶܣÜÝܽÜÜÝ Ü Ü¶ÜÜ
9 ÜܶܢܽÜÜ¢ ÜÝܶÜÜ¢ ÜÝܰÜÝ Ü«Ü¡Ü°Ü¥Ü Ü¡Ü¶Ü¢ Ü¡Ü°Ü ÜÝÜ³Ü ÜܶÜÜ°Ü ÜÜ ÜÜÜ³Ü ÜÝܰÜÜÝÜÝÜ³Ü ÜÜ°Ü ÜÝܰÜÜÜ°Ü ÜÝܡܰÜÝÜ¢ÜÜ³Ü ÜܳÜÜ¶Ü Ü̱ÜÜ³Ü Ü©ÜÝܳܡܰÜÜܽÜÜ¢Ü Ü¥ÜÝÜ°Ü¡Ü³Ü ÜÝܶÜܬÝÜ³Ü Ü©Ü³Ü¡ Ü Ü¥Ü¶Ü Ü¡Ü¶Ü¢ ÜܰÜÜÝÜ³Ü ÜÝܺÜÜܬÝܰÜÜÌ±Ü ÜÜ°Ü ÜܳÜÜ
我不懂叙利亚文,所以我不知道它是否正确,但它没有任何文字
\u
序列。