Я ищу список для определенной записи.Запись состоит из цифр, за которыми следует косая (один или много раз).
Если я помещу пример в строку и использую re.match (), я получу результат.
Если я поставлюСтрока в список и цикл через, я получаю результат от re.match ()
Если я пытаюсь получить индекс, используя понимание списка, я получаю все возвращенные индексы списка.
Использование другогоlist Я получаю правильный результат.
Почему понимание моего списка для моего регулярного выражения не просто возвращает [2], как это делает контрольный список?
Пример кода:
import re
import sys
from datetime import datetime
rxco = re.compile
rx = {}
#String
s = r'140/154/011/002'
#String in a list
l = ['abc', 'XX123 SHDJ FFFF', s, 'unknown', 'TTL/4/5/6', 'ORD/123']
#Regex to get what I am interested in
rx['ls_pax_split'] = rxco(r'\s?((\d+\/?)*)')
#For loop returns matches and misses
for i in l:
m = re.match(rx['ls_pax_split'], i)
print(m)
#List Comprehension returns ALL entries - NOT EXPECTED
idx = [i for i, item in enumerate(l) if re.match(rx['ls_pax_split'], item)]
print(idx)
#Control Comprehension returns - AS EXPECTED
fruit_list = ['raspberry', 'apple', 'strawberry']
berry_idx = [i for i, item in enumerate(fruit_list) if re.match('rasp', item)]
print(berry_idx)