问题描述
我有一个包含 32000 行的 txt 文件。数据为阿拉伯-波斯语,但每行包含第一个单词的罗马音译。
دێان diêyan بنووڕه دگان نگا دگان
دێان شكنه diêyan şêkêne دگان شكنه
دیدن dîdin بنووڕه دید نگا دید و تركیباتش
我需要在罗马音标前后加一个逗号。我已经写了这个,但它在罗马转录的每个字符后面放了一个逗号:
import re
output = open("output.txt","w")
input = open("sample.txt").read()
for word in input:
output.write(re.sub(r'^([a-z])',r',\1',word))
output.close()
有什么建议吗?
解决方法
试试
re.sub('([a-z].*[a-z])',r',\1,',word)
输出文件:
دێان,diêyan,بنووڕه دگان نگا دگان
دێان شكنه,diêyan şêkêne,دگان شكنه
دیدن,dîdin,بنووڕه دید نگا دید و تركیباتش
但是这个词必须以 [a-z] 开头和结尾。
,试试这个:
re.sub(r'(([a-zêîş]+ ?)+)',\1',word))
它将为您提供的示例文本生成以下输出:
دێان,diêyan بنووڕه دگان نگا دگان
دێان شكنه,diêyan şêkêne دگان شكنه
دیدن,dîdin بنووڕه دید نگا دید و تركیباتش
您需要添加模式中可能包含的任何特殊字符。