Использование Pattern в регулярном выражении verbose - PullRequest
0 голосов
/ 31 января 2019

Пытаясь получить вывод с помощью re.VERBOSE

Я пытаюсь изменить код шаблона, как показано

Я попробовал какой-то код, но он ничего не показывает, потому что он не возвращает ничего

оригинал

    taf_header_pattern = """
        ^
        (TAF)?    # TAF header (at times missing or duplicate)
        \s*
        (?P<type> (COR|AMD|AMD\sCOR|COR\sAMD|RTD)){0,1}
        \s* # There may or may not be space as COR/AMD/RTD is optional
        (?P<icao_code> [A-Z]{4}) # Station ICAO code
        \s* # at some aerodromes does not appear
        (?P<origin_date> \d{0,2}) # at some aerodromes does not appear
        (?P<origin_hours> \d{0,2}) # at some aerodromes does not appear
        (?P<origin_minutes> \d{0,2}) # at some aerodromes does not appear
        Z? # Zulu time (UTC, that is) # at some aerodromes does not appear
        \s*
        (?P<valid_from_date> \d{0,2})
        (?P<valid_from_hours> \d{0,2})
        /
        (?P<valid_till_date> \d{0,2})
        (?P<valid_till_hours> \d{0,2})
    """

Изменено

    taf_header_pattern = """
        ^
        (?P<icao_code> [A-Z]{4}) # Station ICAO code
        \s*
        (?P<fix_code> (FIXED BASE)) # FIXED BASE
        \s*
        (?P<type> (COR|AMD|AMD\sCOR|COR\sAMD|RTD)){0,1}
        \s* # There may or may not be space as COR/AMD/RTD is optional
        (?P<origin_date> \d{0,2}) # at some aerodromes does not appear
        (?P<origin_hours> \d{0,2}) # at some aerodromes does not appear
        (?P<origin_minutes> \d{0,2}) # at some aerodromes does not appear
        Z? # Zulu time (UTC, that is) # at some aerodromes does not appear
        \s*
        (?P<valid_from_date> \d{0,2})
        (?P<valid_from_hours> \d{0,2})
        /
        (?P<valid_till_date> \d{0,2})
        (?P<valid_till_hours> \d{0,2})
    """

test_string00 = "KIND FIXED BASE 3117Z-0117Z"
test_string01 = "KGEG FIXED BASE AMD02 3119Z-0110Z 311958Z"
test_string02 = "KGEG FIXED BASE AMD02 COR01 3119Z-0110Z 311958Z"

header_taf = re.match(taf_header_pattern, string, re.VERBOSE)

print(header_taf)

Он не возвращает ничего, что не следует делать

1 Ответ

0 голосов
/ 01 февраля 2019
^
(?P<icao_code> [A-Z]{4}) # Station ICAO code
\s*
(?P<fix_code> (FIXED\ BASE)) # FIXED BASE
\s*
(?P<type>(AMD\d{2}\sCOR\d{2}|COR\d{2}|AMD\d{2})){0,1}
\s* # There may or may not be space as COR/AMD/RTD is optional
(?P<valid_from_date>\d{0,2})
(?P<valid_from_hours>\d{0,2}) 
Z?
\-?
(?P<valid_till_date>\d{0,2})
(?P<valid_till_hours>\d{0,2})  
Z?
\s* # There may or may not be space as COR/AMD/RTD is optional
(?P<origin_date>\d{0,2}) # at some aerodromes does not appear
(?P<origin_hours>\d{0,2}) # at some aerodromes does not appear
(?P<origin_minutes>\d{0,2}) # at some aerodromes does not appear
Z?

Это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...