#python-3.9
Вопрос:
Строки содержат URL-адрес, код статуса и некоторые другие данные. Пример строк:
https://3836200.domain.com/ [404]
Поэтому я понял, что могу использовать
__contains__('200')
Но это не сработает, потому что 200 находится в поддомене, но код статуса 404. Я пытаюсь разделить строки по коду состояния. Затем я понял, как использовать re.search, чтобы получить строки между скобками, но он не печатает всю строку. Любая помощь или ссылка на статью об этом. Спасибо. Bts Я использую python3.9
Комментарии:
1. Ты на правильном пути. Пожалуйста, покажите свой шаблон регулярного выражения и объясните, почему вы считаете, что все пошло не так. Это даст нам что-то для работы.
2. Вы могли бы использовать
if "[404]" in line
3. Я попробую это здесь через минуту, Тим. И S3DEV я ответил, что, но в неправильном комментарии, также stackoverflow автоматически удаляет символы по какой-то причине, так что это неправильно.
Ответ №1:
Учитывая, что этот формат сохраняется. Вот решение для этого.
import re
regex= "(/ [(d )])$"
str = "https://3836200.domain.com/ [404]"
search = re.search(regex, str)
if search is not None:
print(search.group(2))
Выход : 404
Комментарии:
1. @S3DEV уверен, что я делаю регулярное выражение = r»[([200] )]»
2. Я пробовал это, но это ничего не возвращает. Кроме того, я пытаюсь перебрать файл с более чем тысячей URL-адресов и разделить их на основе кода состояния http. Первое, что я попробовал, работает, содержит , но некоторые поддомены a содержат 200 404 500 и т. Д., Так что это противоречит цели.
3. можете ли вы поделиться форматом файла 2-3 строки файла помогут в понимании шаблона текста. Если вы просто запустите этот фрагмент, он будет успешно работать.
4. хорошо, это означает, что после [404] есть и другие символы. Просто удалите $ из регулярного выражения, и оно будет работать, так как $ означает конец строки, которого в вашем случае нет.