如何忽略特殊字符,除了" - "在python3?

时间:2015-04-17 23:50:24

标签: regex python-3.x

有人能告诉我除了" - "我应该怎么忽略所有特殊字符?使用isalnum()。如果这不可能,任何人都可以帮我解决它的正则表达式吗?

我只允许['a-z','A-Z',0-9,'-']

2 个答案:

答案 0 :(得分:1)

只需在字符类中添加要允许的字符,然后重复一次或多次,在该字符类旁边添加+量词。

^[a-zA-Z0-9-]+$

示例:

>>> import re
>>> re.match(r'[a-zA-Z0-9-]+$', 'foo-bar')
<_sre.SRE_Match object; span=(0, 7), match='foo-bar'>
>>> re.match(r'[a-zA-Z0-9-]+$', 'Foo9bar')
<_sre.SRE_Match object; span=(0, 7), match='Foo9bar'>
>>> re.match(r'[a-zA-Z0-9-]+$', 'Foo+bar')
>>> 

答案 1 :(得分:1)

你自己写了很多正则表达式。如果您仔细阅读character classes,您将了解到他们定义了一组字符。说 - “匹配一个的类指定的字符”。因此,您真正需要做的就是从字符类中删除引号和逗号,在其前面加上quantifieranchor模式。

^[a-zA-Z0-9-]+$