使用Python中的正则表达式在文本中的阿拉伯语(波斯语)和英语单词之间插入逗号

2024-04-27 14:16:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含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() 

有什么建议吗


Tags: 文件数据retxtinputoutputopen单词
2条回答

尝试一下:

re.sub(r'(([a-zêîş]+ ?)+)', r',\1', word))

它将为您提供的示例文本生成以下输出:

دێان ,diêyan بنووڕه‌ ‌دگان نگا دگان‌
دێان‌ شكنه ,diêyan şêkêne دگان‌ شكنه
دیدن ,dîdin بنووڕه‌ ‌دید نگا دید و تركیباتش

您需要在模式中添加任何特殊字符

试一试

re.sub('([a-z].*[a-z])', r',\1,', word)

输出文件:

دێان ,diêyan, بنووڕه‌ ‌دگان نگا دگان‌

دێان‌ شكنه ,diêyan şêkêne, دگان‌ شكنه

دیدن ,dîdin, بنووڕه‌ ‌دید نگا دید و تركیباتش

但是这个词必须以[a-z]开头和结尾

相关问题 更多 >