Приведем несколько примеров использования рассмотренных на предыдыущих шагах конструкций.
Раскрыть/скрыть решение и комментарии.
Сначала попробуем получить каждый символ, используя ".":
import re
result = re.findall(r'.', "Мама мыла раму")
print("Результат: ", result)
Результат: ['М', 'а', 'м', 'а', ' ', 'м', 'ы', 'л', 'а', ' ', 'р', 'а', 'м', 'у']
Для того, чтобы в конечный результат не попал пробел, используем вместо "." "\w".
import re
result = re.findall(r'\w', "Мама мыла раму")
print("Результат: ", result)
Результат: ['М', 'а', 'м', 'а', 'м', 'ы', 'л', 'а', 'р', 'а', 'м', 'у']
Теперь попробуем получить каждое слово, используя "*" или "+":
import re
result = re.findall(r'\w*', "Мама мыла раму")
print("Результат: ", result)
Результат: ['Мама', ' ', 'мыла', ' ', 'раму']
И снова в результат попали пробелы, так как "*" означает <ноль или более символов>. Для того, чтобы их убрать, используем "+":
import re
result = re.findall(r'\w+', "Мама мыла раму")
print("Результат: ", result)
Результат: ['Мама', 'мыла', 'раму']
Теперь получим первое слово, используя "^":
import re
result = re.findall(r'^\w+', "Мама мыла раму")
print("Результат: ", result)
Результат: ['Мама']
Если мы используем "$" вместо "^", то мы получим последнее слово, а не первое:
import re
result = re.findall(r'\w+$', "Мама мыла раму")
print("Результат: ", result)
Результат: ['раму']
Архив с файлом можно взять
здесь.
Раскрыть/скрыть решение и комментарии.
Можно взять два последовательных символа, используя символ границы слова ("\b"):
import re
result = re.findall(r'\b\w.', "Мама мыла раму")
print("Результат: ", result)
Результат: ['Ма', 'мы', 'ра']
Архив с файлом можно взять
здесь.
Раскрыть/скрыть решение и комментарии.
Давайте снова рассмотрим решение пошагово. Сначала вернем все символы после "@":
import re
result = re.findall(r'@\w+', "abc.test@gmail.com, xyz@test.in,
test.first@analyticsvidhya.com, first.test@rest.biz")
print("Результат: ", result)
Результат: ['@gmail', '@test', '@analyticsvidhya', '@rest']
Как видим, части ".com", ".in" и т. д. не попали в результат. Изменим наш код:
import re
result = re.findall(r'@\w+.\w+', "abc.test@gmail.com, xyz@test.in,
test.first@analyticsvidhya.com, first.test@rest.biz")
print("Результат: ", result)
Результат: ['@gmail.com', '@test.in', '@analyticsvidhya.com', '@rest.biz']
Архив с файлом можно взять
здесь.