Задать вопрос
@r10d10

Как правильно вывести результат регулярного выражения в Python?

Код на python 3 ищем букву u в строке:
import re
a = 'samsung'
b = re.match(r'u', a)
print(b)
print b.start()
print b.end()


Ответ: None это понятно потому что строка не начинается с этой буквы

Дальше ошибка синтаксиса print в последних двух строках ок, делаю так:
print (b.start())
print (b.end())

Но тогда ошибка AttributeError: 'NoneType' object has no attribute 'start'
Так как же это правильно посмотреть тогда?
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
Maksim_64
@Maksim_64
Data Analyst
Так если ищем паттерн в твоем случае (букву, для поиска буквы регулярка не нужна) в строке, почему match? Замени re.match на re.search, код отработает, но тут опять таки, если он ничего не найдет, то также будет none, добавь условие какое нибудь, например.

import re
a = 'samsung'
b = re.search(r'u', a)
if b:
    print(b)
    print(b.start())
    print(b.end())
else:
    print('Паттерн не найден')
Ответ написан
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Дунадан - северный странник. Злой, но очень добрый
Блин, выучите основы языка сначала. Если у вас b=None, то конечно b.start() вызовет ошибку, потому что у пустоты нет метода start(), понимаете? Откуда там он возьмется если он равен None, т. е. НИЧЕМУ

P. S. Ну а путать синтаксис py2 и py3 - это вообще детский сад. Где вас такому научили? Еще раз настоятельно рекомендую пойти выучить основы языка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы