我想在文本文件的每个单词和符号之间加引号。你知道吗
例如:
Türkiye ya da resmî adıyla Türkiye Cumhuriyeti, topraklarının büyük bölümü Anadolu'ya, küçük bir bölümü ise Balkanlar'ın uzantısı olan Trakya'ya yayılmış bir ülke.
变成->
"Türkiye" "ya" "da" "resmî" "adıyla" "Türkiye" "Cumhuriyeti" "," "topraklarının" "büyük" "bölümü" "Anadolu'ya" "," "küçük" "bir" "bölümü" "ise" "Balkanlar'ın" "uzantısı" "olan" "Trakya'ya" "yayılmış" "bir" "ülke" "."
为此,我写了这样一段代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re, codecs, io
with io.open ("turkish.txt", "r", encoding="utf-8") as myfile:
text=myfile.read()
replacer = re.compile("([\w'-]+|[.,!?;()%])", re.UNICODE)
output_text = replacer.sub(r'"\1"', text).replace('""','" "')
text_file = open("Output.txt", "w")
text_file.write(output_text.encode('utf8'))
text_file.close()
在上面的例子中,替换是可以的。你知道吗
但对于这样一个例子
İmparatorluk zirvesini 15 ve 17'nin arasında, özelikle I. Süleyman döneminde 10.000'lerde yaşadı.
更换如下:
"İmparatorluk" "zirvesini" "15" "ve" "17'" "nin" "arasında", "özelikle" "I" "." "Süleyman" "döneminde" "10" "." "000'" "lerde" "yaşadı" "."
如您所见,10.000
是一个数字,17'nin
是在一起的,I.
指的是罗马数字的排名,所以我想把它们分开为
10.000
、17'nin
和I.
。你知道吗
我应该如何修改我的正则表达式或代码来实现这一点?你知道吗
谢谢你
将
[IVXLCDM]+\.|[\d\.]+(?:'\w+)?
添加到regex模式的开头将匹配预期的“10.000”和“10.000'lerde”以及“I.”。你知道吗也许是更好的解决办法
相关问题 更多 >
编程相关推荐