Advertisement
Merzavets

regex in Python

May 23rd, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.13 KB | None | 0 0
  1. # borrowed from https://habr.com/post/309242/#comment_9790814
  2. # Я когда-то тоже довольно долго мучился с if'ами при необходимости сматчить строку с одной из нескольких регулярок.
  3. # Но потом мне всё-таки удалось сконцентрировать волю и сделать тривиальную обёртку вокруг re.
  4.  
  5. # Обёртка
  6. class Re(object):
  7.     def __init__(self):
  8.         self.last_match = None
  9.  
  10.     def match(self, pattern, text):
  11.         self.last_match = re.match(pattern, text)
  12.         return self.last_match
  13.  
  14.     def search(self, pattern, text):
  15.         self.last_match = re.search(pattern, text)
  16.         return self.last_match
  17.  
  18.     def group(self, index):
  19.         return self.last_match.group(index)
  20.  
  21.  
  22. # Теперь я делаю вот так и забыл о прежнем чувстве дискомфорта:
  23. # Приятные if'ы
  24.  
  25. r = Re()
  26. if r.search(r'[0-9]+', str):
  27.     # число / this is a number
  28. elif r.search(r'[a-z]+', str):
  29.     # слово / this is a word
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement