我试图对波斯语文本文件进行预处理,但问题是,对于数字,有时他们使用阿拉伯数字而不是波斯语数字。我想用正则表达式解决这个问题。以下是我的代码片段:
def preprocessing(content):
import re
for d in range(10):
arabic_digit = rf"\u066{d}"
persian_digit = rf"\u06F{d}"
content = re.sub(arabic_digit, persian_digit, content)
return(content)
但它给出了以下错误信息:
error: bad escape \u at position 0
我想知道如何在正则表达式模式中使用变量。奇怪的是,第二个模式(persian_digit
)存在问题,当我将其更改为静态字符串时,没有错误。谢谢你抽出时间
根据this,在
re.sub()
中包含“\”的模式中不允许有未知转义,这是您遇到的错误您可以做的是将原始字符串返回到像this这样的“正常”字符串,但我不确定这是否是最佳实践:
chr()
是生成Unicode代码点的方法:但是,
str
有一个内置的.translate
函数,用于进行更有效的大规模替换。给出要替换的字符列表和相同长度的新字符列表:输出:
相关问题 更多 >
编程相关推荐