我写了一个程序,可以在字典中找到所有的算法类。然而,我在处理重音字符时遇到了一个问题。目前,我的代码读入它们,将它们视为不可见的,但最后仍以'\xc3\???'的形式打印出某种替换代码。我想去掉所有带重音的单词,但我不知道如何识别它们。在
我尝试过的事情:
问题/问题:我需要找出如何检测重音符号,但我的程序将重音符号打印到命令行上,并显示为奇怪的'\xc3\???'字符,这不是程序处理它们的方式,因为我找不到任何包含“\xc3\??”的单词尽管打印到命令行。在
示例:sé->;s\xc3\xa9,而sé和s被我的程序视为anagram。在
测试字典:
stop
tops
pots
hello
world
pit
tip
\xc3\xa9
sé
s
se
代码输出:
^{pr2}$程序本身:
import re
anadict = {};
for line in open('fakedic.txt'):#/usr/share/dict/words'):
word = line.strip().lower().replace("'", "")
line = ''.join(sorted(ch for ch in word if word if ch.isalnum($
if isinstance(word, unicode):
print word
print "UNICODE!"
pattern = re.compile(r'xc3')
if pattern.findall(word):
print 'Found'
print word
if anadict.has_key(line):
if not (word in anadict[line]):
anadict[line].append(word)
else:
anadict[line] = [word]
for key in anadict:
if (len(anadict[key]) >= 1):
print anadict[key]
帮忙吗?在
所以基本上我的答案是。。。看看这里:
How to check if a string in Python is in ASCII?
要点是,您可以检查每个字符,看看字符的
ord
是否小于128,这允许您检查它是否是重音字符。或者你可以做很多尝试和捕捉,寻找unicode错误,这些错误将在重音字符期间抛出。(后者似乎是更有效的答案)对我来说,这绝对是一次学习的经历:)很抱歉花了这么长时间
最后,我使用正则表达式(基本上是为了检查所有非字母字符的内容):
这帮我去掉了任何有\或其他数字或怪异符号的单词。不是一个完美的解决方案,但它奏效了。在
相关问题 更多 >
编程相关推荐