python-re编解码器&xE4ö;,芬兰语,定义那个词
是否可以定义特定语言字符将被视为单词。 也就是说,如果我按以下方式搜索,re不接受ä,ö作为单词字符python-re编解码器&xE4ö;,芬兰语,定义那个词,python,regex,codec,Python,Regex,Codec,是否可以定义特定语言字符将被视为单词。 也就是说,如果我按以下方式搜索,re不接受ä,ö作为单词字符 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-Z
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]中。
如何定义它?首先,您似乎对re.sub的参数有点困惑 第一个参数是模式。您有“[^äÄöåäA-Za-z0-9]”,它与芬兰字母表或数字表中没有的每个字符相匹配 第二个参数是替换。您有“[^A-Za-z0-9]*”。。。因此,每个非芬兰语字母数字字符都将被文字字符串
[^A-Za-z0-9]*
替换。有理由假设这不是你想要的
word
将是unicode
对象的列表,这是一件好事。然而,encoding=
和errors=
表明(对我们来说)未知的smart_str()正在将您可爱的unicode转换回UTF-8。处理UTF-8字节而不是Unicode字符的数据是有害的,除非您知道自己在做什么u
前缀;如果你认为你的打字手指磨损太大,至少把它放在非ASCII常量上,例如“代码> u”[^,SavaOdOrthux[AZ-Z09] ] < /COD>。完成所有处理后,使用适当的编码对结果进行编码,以便显示或存储首先,您似乎对re.sub的参数有点困惑 第一个参数是模式。您有“[^äÄöåäA-Za-z0-9]”,它与芬兰字母表或数字表中没有的每个字符相匹配 第二个参数是替换。您有“[^A-Za-z0-9]*”。。。因此,每个非芬兰语字母数字字符都将被文字字符串
[^A-Za-z0-9]*
替换。有理由假设这不是你想要的
word
将是unicode
对象的列表,这是一件好事。然而,encoding=
和errors=
表明(对我们来说)未知的smart_str()正在将您可爱的unicode转换回UTF-8。处理UTF-8字节而不是Unicode字符的数据是有害的,除非您知道自己在做什么u
前缀;如果你认为你的打字手指磨损太大,至少把它放在非ASCII常量上,例如“代码> u”[^,SavaOdOrthux[AZ-Z09] ] < /COD>。完成所有处理后,使用适当的编码对结果进行编码,以便显示或存储像这样的事情可能会奏效:
pattern = re.compile("(?u)pattern")
或
像这样的事情可能会奏效:
pattern = re.compile("(?u)pattern")
或
[A-Za-z0-9]
将只匹配此处列出的字符,但也会提到一些其他特殊结构,如:
表示字母数字字符(即\w
加上所有声明为字母数字的unicode字符[a-zA-Z0-9\
表示所有nun字母数字字符\W
加unicode[^a-zA-Z0-9\
代表数字\d
匹配单词边界(包括unicode表中的所有规则)\b
re_word = re.compile(r'\w+', re.U)
[A-Za-z0-9]
将只匹配此处列出的字符,但也会提到一些其他特殊结构,如:
表示字母数字字符(即\w
加上所有声明为字母数字的unicode字符[a-zA-Z0-9\
表示所有nun字母数字字符\W
加unicode[^a-zA-Z0-9\
代表数字\d
匹配单词边界(包括unicode表中的所有规则)\b
re_word = re.compile(r'\w+', re.U)
在前两行之后,
word
将是Unicode字符串的列表。在前两行之后,word
将是Unicode字符串的列表。re.Unicode
与区域设置无关,使用re.locale
依赖当前区域设置。re.Unicode
与区域设置无关,使用re.locale
依赖当前区域设置在当前区域设置上。