Python RegEx中的特殊序列(字符类)是类似于\w或\d匹配一组字符的转义.
就我而言,我需要能够匹配除数字之外的所有字母数字字符.
也就是说,\w减去\d.
我需要使用特殊序列,\w因为我正在处理非ASCII字符,需要匹配"Æ"和"Ø"等符号.
有人会认为我可以使用这个表达式:[\w^\d]但它似乎不匹配任何东西,我不知道为什么.
简而言之,我如何在Python正则表达式中混合(加/减)特殊序列?
编辑:我不小心使用[\W^\d]而不是[\w^\d].后者确实匹配某些东西,包括括号和逗号,就我而言,它们不是字母数字字符.
Jan*_*ila 13
你可以使用r"[^\W\d]",即.颠倒非字母数字和数字的结合.
你不能减去字符类,不.
最好的办法是使用新regex模块,设置为替换repython中的当前模块.它支持基于Unicode属性的字符类:
\p{IsAlphabetic}
Run Code Online (Sandbox Code Playgroud)
这将匹配Unicode规范声明的任何字符是字母字符.
更妙的是,regex 不支持字符类减法; 它将这些类视为集合,并允许您与--运算符创建差异:
[\w--\d]
Run Code Online (Sandbox Code Playgroud)
匹配\w除了匹配的任何东西\d.