Помогите с паттернами regex

da0da

Новичок
Пользователь
Окт 17, 2020
1
0
1
Python 3.8
Python:
import re
text = """
        <meta name="mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <title>test123456</title>
        <meta http-equiv="origin-trial" content="zcxczxxcz">
        <script>
"""
print(re.match("<title>(.+)<\/title>", text))

почему он не видит "test123456"?
Проверил на сайте, где можно проверить матчи все нормально, а вот питон выводит в консоль "None"
 

Вложения

  • Cl6fAe_rysY.jpg
    Cl6fAe_rysY.jpg
    135 КБ · Просмотры: 3
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
почему он не видит "test123456"?
re.match ищет паттерн с начала строки, поэтому в вашем случае он ничего не находит.
Можно вместо re.match воспользоваться re.search или re.findall.
Вот пример:
Python:
import re


text = """
        <meta name="mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <title>test123456</title>
        <meta http-equiv="origin-trial" content="zcxczxxcz">
        <script>
"""
print(re.findall("<title>(.+)</title>", text)[0])
print(re.search("<title>(.+)</title>", text).group(1))

text2 = "<title>test123456</title>"
print(re.match("<title>(.+)</title>", text2).group(1))
 

Форум IT Специалистов