有人能告诉我除了" - "我应该怎么忽略所有特殊字符?使用isalnum()
。如果这不可能,任何人都可以帮我解决它的正则表达式吗?
我只允许['a-z','A-Z',0-9,'-']
答案 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,您将了解到他们定义了一组字符。说 - “匹配一个的类指定的字符”。因此,您真正需要做的就是从字符类中删除引号和逗号,在其前面加上quantifier和anchor模式。
^[a-zA-Z0-9-]+$