gpt4 book ai didi

python - 编码 Python 列表以使用 re 模块

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:05 25 4
gpt4 key购买 nike

我有一个西类牙语文本文件,所以它有数千个单词,其中一些带有重音。我正在使用 re 模块来提取一些单词,但是当我得到一个列表时,有些单词是不完整的。

这是我的代码的第一部分:

projectsinline = open('projectsinline.txt', 'r')

for lines in projectsinline:

pattern = r'\b[a-zA-Z]{6}\b'
words = re.findall(pattern, lines)

print words

这是一个输出示例:

['creaci', 'Estado', 'relaci', 'Regula', 'estado', 'comisi', 'delito']

应该是这样的:

['creación', 'Estado', 'relación', 'Regula', 'estado', 'comisión', 'delito']

我找到了这个答案:Encode Python list to UTF-8但这没有帮助,因为我的文本来自文本文件,所以我不能使用此代码:

import re
import codecs
import sys

sys.stdout = codecs.getwriter('UTF-8')(sys.stdout)

projectsinline = open('projectsinline.txt', 'r')

for lines in projectsinline:

pattern = ur'\b[a-zA-Z]{6}\b'
unicode_pattern = re.compile(pattern, re.UNICODE)
result = unicode_pattern.findall(lines)
print result

现在,输出会跳过带有重音的单词。

有什么解决问题的建议吗?

谢谢!

最佳答案

您正在使用此 r'\b[a-zA-Z]{6}\b' 挑选具有 6 个字母的单词,你的例子中的一些单词有更多的字母,这些字母被截断,因为你的特殊符号被认为不是单词字符,单词边界也算出来了。

我会使用 \w相反,如果您想要所有包含 6 个字母的单词。

will match the characters [0-9_] plus whatever is classified as alphanumeric in the Unicode character properties database.

import re
import codecs

with codecs.open('projectsinline.txt', 'r', encoding="utf-8") as f:
for line in f:
unicode_pattern = re.compile(r'\b\w{6}\b', re.UNICODE)
result = unicode_pattern.findall(line)
for word in result:
print word

示例字符串:

creación, longstring, lación, Regula, estado, misión

输出:

lación
Regula
estado
misión

关于python - 编码 Python 列表以使用 re 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35736783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com