是否可以定义特定语言字符将被视为单词。 IE。如果我按以下方式搜索它们,则不接受 ä,ö 作为单词字符
Ft=codecs.open('c:\\Python27\\Scripts\\finnish2\\textfields.txt','r','utf–8')
word=Ft.readlines()
word=smart_str(word, encoding='utf-8', strings_only=False, errors='replace')
word=re.sub('[^äÄöÖåÅA-Za-z0-9]',"""\[^A-Za-z0-9]*""", word) ; print 'word= ', word #works in skipping ö,ä,å characters
我希望这些字符包含在 [A-Za-z] 中。 这个怎么定义?
请您参考如下方法:
[A-Za-z0-9] 将只匹配此处列出的字符,但 docs还提到了一些其他特殊结构,例如:
\w代表字母数字字符(即[a-zA-Z0-9_]加上声明为字母数字的所有 unicode 字符\W代表所有非字母数字字符[^a-zA-Z0-9_]加上 unicode\d代表数字\b匹配单词边界(包括 unicode 表中的所有规则)
因此,您将 (a) 使用此结构代替(更短且可能更易于阅读),并且 (b) 告诉 re 您希望通过设置 UNICODE 标志将这些字符串“本地化”为当前语言环境喜欢:
re_word = re.compile(r'\w+', re.U)
