Вы можете сначала разделить вашу строку с помощью :
и взять нулевой индекс, а затем разделить эту строку с помощью регулярного выражения -\d+-
, и вы должны получить желаемые значения, как вы разместили в своем вопросе. Смотрите этот код Python,
import re
arr = ['ABC7-8-1234: Veggie - RESTRICTED (1)', 'AB-WALT-9-2065: Application (6)']
for s in arr:
print(re.split(r'-\d+-', re.split(':', s)[0]))
печать
['ABC7', '1234']
['AB-WALT', '2065']
В качестве альтернативы вы также можете использовать это регулярное выражение и получить значения из group1 и group2,
^(.+?)-\d+-([^:]+)
Regex Demo
код Python,
import re
arr = ['ABC7-8-1234: Veggie - RESTRICTED (1)', 'AB-WALT-9-2065: Application (6)']
for s in arr:
m = re.search(r'^(.+?)-\d+-([^:]+)', s)
if m:
print([m.group(1), m.group(2)])
печать
['ABC7', '1234']
['AB-WALT', '2065']