从包含中文字符的UTF-8文件中提取数据时遇到困难。在
该文件实际上是CEDICT(汉英词典),如下所示:
賓 宾 [bin1] /visitor/guest/object (in grammar)/
賓主 宾主 [bin1 zhu3] /host and guest/
賓利 宾利 [Bin1 li4] /Bentley/
賓士 宾士 [Bin1 shi4] /Taiwan equivalent of 奔馳|奔驰[Ben1 chi2]/
賓夕法尼亞 宾夕法尼亚 [Bin1 xi1 fa3 ni2 ya4] /Pennsylvania/
賓夕法尼亞大學 宾夕法尼亚大学 [Bin1 xi1 fa3 ni2 ya4 Da4 xue2] /University of Pennsylvania/
賓夕法尼亞州 宾夕法尼亚州 [Bin1 xi1 fa3 ni2 ya4 zhou1] /Pennsylvania/
到目前为止,我设法使用split()获取前两个字段,但我无法确定如何提取另外两个字段(比如第二行“bin1zhu3”和“host and guest”)。我一直在尝试使用regex,但由于我忽略的原因,它不起作用。在
^{pr2}$感谢任何帮助。在
这将构建一个字典来查找简化或繁体字符的翻译,并且在Python 2.7和3.3中都可以使用:
输出(Python 3.3):
^{pr2}$输出(Python2.7,必须打印字符串才能看到非ASCII字符):
我以前也做过同样的事。基本上你只需要在分组中使用regex。不幸的是,我对python regex不是很了解(我使用C#做了同样的事情),但是您应该做这样的事情:
匹配器=
"(\b\w+\b) (\b\w+\b) \[(\.*?)\] /(.*?)/"
基本上,您使用一个表达式匹配整行,但随后使用
( )
将每个项分隔为一个regex组。那你只需要读一下小组,瞧!在在给定maximum split number的情况下,我将继续使用拆分而不是正则表达式。这取决于输入文件格式的一致性。在
输出:
^{pr2}$编辑:要将最后一个字段拆分为列表,请在
/
上拆分:输出(对于输入的第一行):
相关问题 更多 >
编程相关推荐