Вы можете использовать это регулярное выражение для захвата вашего testcaseid, заданного в вашем формате,
(?<=testcaseid_)[^_]+_[^_]+
По сути, это захватывает текст, имеющий ровно одно подчеркивание между ними, и перед ним стоит testcaseid_
текст с использованием положительного взгляда сзади. Здесь [^_]+
захватывает один или несколько символов, отличных от подчеркивания, за которыми следует _
, затем снова используется [^_]+
для захвата одного или нескольких символов, кроме _
Проверьте эту демонстрацию
Проверьте этот код Python,
import re
list = ['GeneralBKT_n24_-e_dee_testcaseid_blt12_0001_s3_n4', 'GeneralBKT_n24_-e_dee_testcaseid_blt12_0001_s6_n9']
for s in list:
grp = re.search(r'(?<=testcaseid_)[^_]+_[^_]+', s)
if grp:
print(grp.group())
Выход,
blt12_0001
blt12_0001