Skip to main content
 首页 » 编程设计

python re codecs ä ö,芬兰语,定义单词

2025年05月04日21lhb25

是否可以定义特定语言字符将被视为单词。 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)