我尝试过滤除字母数字字符、俄语字母、换行符、空格、逗号、点、问号、感叹号、斜杠、#
、@
、冒号和括号之外的任何内容。
我的regex到目前为止:r"[^А-я\w\d\n ,.?!ё/@#:()]"
但是,它与以下字符串不匹配:"𝕾𝖍𝖎𝖗𝖔𝖓"
。为什么不呢?我怎么才能让它这样做呢?
**编辑:**忘了提它在https://regexr.com/上按预期工作
我尝试过滤除字母数字字符、俄语字母、换行符、空格、逗号、点、问号、感叹号、斜杠、#
、@
、冒号和括号之外的任何内容。
我的regex到目前为止:r"[^А-я\w\d\n ,.?!ё/@#:()]"
但是,它与以下字符串不匹配:"𝕾𝖍𝖎𝖗𝖔𝖓"
。为什么不呢?我怎么才能让它这样做呢?
**编辑:**忘了提它在https://regexr.com/上按预期工作
2条答案
按热度按时间csbfibhn1#
您可以在此链接检查字符串,您将看到“𝕾𝖍𝖎𝖗𝖔𝖓”字符串由属于
\p{L}
类别的字符组成。正则表达式以[^А-я\w\d
开头,这意味着它匹配除俄语字符(ё
(稍后定义)和Ё
除外)、任何Unicode字母(any,因为在Python 3中,默认情况下,\w
匹配任何Unicode字母数字字符和连接符标点符号。您似乎只想删除俄语和英语字母,因此请使用相应的范围:
它匹配一个或多个除
А-ЯЁа-яё
-俄文字母A-Za-z
- ASCII字母0-9
- ASCII数字\n ,.?!/@#:()
-换行符、空格、逗号、点、问号和感叹号、斜杠、&符号、散列、冒号和圆括号。v440hwme2#
你可以让它只匹配你需要的类型。而不是不需要的字符串类型。
这应该可以工作
[А-я\w\d\"+\"\n\"+\" ,.?!ё/@#:()]