Pull to refresh

Comments 6

Ага. Боюсь даже представить как будет выглядеть в такой форме какая-нибудь нетривиальная регулярка, например, на номер телефона, или, не дай боже, емейл или uri.
В питоне есть многословные(verbose) регулярные выражения, где комментами можно всё прояснить.
также стоит упомянуть regex, в котором '\w' работает не только для латиницы:

>>> re.findall(u'\w', u'привет')
[]
>>> regex.findall(u'\w', u'привет')
[u'\u043f', u'\u0440', u'\u0438', u'\u0432', u'\u0435', u'\u0442']



Плюс поддерживаются категории юникода:
>>> regex.findall(u'\p{Punctuation}', u'привет, человек')
[u',']


Плюс еще куча всяких плюшек, например:
[\p{N}--[0-9]] # Set containing all numbers except ‘0’… ‘9’
[\p{ASCII}&&\p{Letter}] # Set containing all characters which are ASCII and letter
Первая проблема в современном питоне решена:

> python
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32
Type «help», «copyright», «credits» or «license» for more information.
>>> import re
>>> re.findall(u'\w', u'привет')
['п', 'р', 'и', 'в', 'е', 'т']
>>> exit()

> «c:\Program Files\Python27\python.exe»
Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on win32
Type «help», «copyright», «credits» or «license» for more information.
>>> import re
>>> re.findall(u'\w', u'привет')
[]
>>> exit()
Sign up to leave a comment.