2015-04-17 5 views
0

Может ли кто-нибудь сказать мне, как игнорировать все специальные символы, кроме «-», используя isalnum(). Если это невозможно, кто-нибудь может помочь мне с его регулярным выражением?Как игнорировать специальные символы, кроме «-» в python3?

Я хотел бы, чтобы только ['a-z','A-Z',0-9,'-']

ответ

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') 
>>> 
+0

Что делать, если я хочу игнорировать пустую строку и разрешать только цифры, букву и тире '[$ | a-zA-Z0-9 -] + $' это правильно? – Akshay

+0

'^ [a-zA-Z0-9 -] + $' самостоятельно не разрешает пустые строки. –

1

Вы довольно много написал регулярное выражение себя. Если вы тщательно прочитали character classes, вы узнаете, что они определяют набор символов. Высказывание — "соответствует одному символов, указанных в классе". Итак, все, что вам действительно нужно сделать, это удалить цитаты и запятые из класса символов, предварять его шаблонами quantifier и anchor.

^[a-zA-Z0-9-]+$ 
Смежные вопросы