нужна помощь в отношении выражения регулярных выражений.
str = 'label1 a1,832,b2 and label2 2, c45'
при попытке вернуть результаты как
['label a1',label 832','label b2','label 2', 'label c45']
, пока я могу получить только ['label2 a1','label2 2']
спасибо!
изменить:
для уточнения.
У меня есть список меток
labelList = ['dog','cat','mouse',...]
str = 'There are 3 locations which are dog 122, h25 and cat a3.'
Результат должен быть:
result = 'dog 122', 'dog h25' and 'cat a3'.
В настоящее время я делаю поиск по регулярному выражению следующим образом:
for x in labelList:
re.search(r'\b(%s) ([^ \r\n]+\b')
Надеюсь, это прояснит вопрос!
edit2:
labelList = ['dog','cat','mouse',...]
str = 'There are 3 locations which are dog 122, h25 and cat a3.'
for x in labelList:
if re.search(r'\b(%s)\b' % (x), str):
nr = [f"(%s) {m}" % (x) for m in re.findall(r"(?:(%s))?(\w+)", comText) if m!= 'and']
print(nr)
Однако , вывод кажется неправильным. Это дает мне следующий вывод
["(dog) (' ','there')", "(dog) (' ','are')", "(dog) (' ', '3')" ...