Как в питоне проверить строку на соответствие шаблону

 

GOGI

координатор
★★★★
Имеем строку символов. Надо проверить, что её соответствие шаблону "n символов заданного алфавита". Алфавит тут просто набор определенных символов. Понимаю, что через регулярные выражения но чего-то не могу понять, как его составить.
1  
+
-
edit
 

Mishka

модератор
★★★
[bzk]+
если хочешь хотя бы одну букву из алфавита bzk
[bzk]*
если хочешь, чтобы и пустая строка было там
 

Murkt

Pythoneer

можно с регулярными выражениями, можно без:
code python
  1. >>> alphabet = 'agcvubmie'
  2. >>> n = 15
  3. >>> import re
  4. >>> s = 'agccvubeivvvuuu'
  5. >>> s1 = '13edfgh sdv'
  6. >>> re.match('[%s]{%d}' % (alphabet, n), s) is not None
  7. True
  8. >>> re.match('[%s]{%d}' % (alphabet, n), s1) is not None
  9. False
  10.  
  11. >>> len(s) == n and all(c in alphabet for c in s)
  12. True
  13. >>> len(s1) == n and all(c in alphabet for c in s1)
  14. False
[team Їжачки - сумні падлюки]  
+
-
edit
 

Mishka

модератор
★★★
Murkt, у тебя будет длинной не более n, правильно? А пустая строка? Вроде бы тогда надо писать
code python
  1. {n,m}
 

Murkt

Pythoneer

Mishka> Murkt, у тебя будет длинной не более n, правильно? А пустая строка? Вроде бы тогда надо писать
Сказано:
GOGI> "n символов заданного алфавита"
То есть - ровно n. Вот у меня оба варианта и проверяют это условие.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Murkt

Pythoneer

Mishka> А что будет при n=0?
Если строка пустая, тогда True.
[team Їжачки - сумні падлюки]  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru