const regex = new RegExp('(?:\\[device name\\]:\\[?|\\[name_of_device\\]- |,)([^\\],\\r\\n]*)(?=.*\\r?\\n(?:[ \\t]*\\[.*\\r?\\n)*?[ \\t]*\\[(?:current software\\]: |software_running\\]- )(.*))', 'g')
const str = `Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. This is a list of all kinds of models, software, and release dates. See below for more details
{
#device batch 1 info can be found below
{
[device name]:device_1
[initial software]: SW\$1_978qhuhk
[current software]: sW98203_973
[date] : 2022-01-05
}
{
[device name]:[device_2, device_3]
[initial software]: sW\$3_jghs
[current software]: sW\$3_jghs2
[date] : 2022-07-03
}
#wifi devices can be found here
{
{
"nested children":
[device name]:[w_device_1, w_device_pro]
[initial software]: 982637012_sw
[current software]: 93834932_swp\$
[date] : 2024-02-01
}
{
[name_of_device]- mesh_plus
[installation_date]-2023-03-21
[software_running]- mesh_sw_old
}
}
}
`;
const subst = ``;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions