Как с помощью регулярного выражения выделить строки с шаблоном EX** и соединить через запятую?

Как на python из строки mdsd_EX1999-inter_01.jpg nm, myname mdsd_EX1129-inter_02.jpg оставить только, что начианется на ex (регистр не важен) далее 4 цифры и заканчивается расширением .jpg ?

По идеи эти строки должны быть в последовательности с разделителем (,)

Финал таков: EX999-inter_01.jpg,EX999-inter_02.jpg


Ответы (2 шт):

Автор решения: Egor

Советую изучить шпаргалку по регулярным выражениям или в конце концов официальный источник

import re

text = "mdsd_EX1999-inter_01.jpg nm, myname mdsd_EX1129-inter_02.jpg"
pattern = r'ex\d+-inter_\d+\.jpg'

matches = re.findall(pattern, text, re.IGNORECASE)
print(",".join(matches))
→ Ссылка
Автор решения: ksa

Финал таков: EX999-inter_01.jpg,EX999-inter_02.jpg

Предложу такую регулярку...

const v = 'mdsd_EX1999-inter_01.jpg nm, myname mdsd_EX1129-inter_02.jpg'
const r = /[^,]*(?=ex\d{4})|(?<=\.jpg)[^,]*/gi
console.log(v.replace(r, ''))

Или вот так...

const v = 'mdsd_EX1999-inter_01.jpg nm, myname mdsd_EX1129-inter_02.jpg'
const r = /ex\d{4}.*?\.jpg/gi
console.log(v.match(r).join(','))

→ Ссылка