const regex = /(?: ([^";\r\n]*) #1 value without quotes or
| \x20* ("(?:[^"]+|"")*") \x20* #2 value inside quotes
)
(?: (;) #3 values delimiter or
| [\r\n]+ # rows delimiter
)/sg;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?: ([^";\\r\\n]*) #1 value without quotes or
| \\x20* ("(?:[^"]+|"")*") \\x20* #2 value inside quotes
)
(?: (;) #3 values delimiter or
| [\\r\\n]+ # rows delimiter
)', 'sg')
const str = `501 ; 8300000000000 ; ";Автономный ;"";округ""
""Ненецкий"";";test1
751;8600800000000; " Автономный округ ""Ханты-Мансийский"", Район Советский" ;
1755;8700300000000;Автономный округ Чукотский, Район Билибинский
1725;7501900000000;Край Забайкальский, Район Петровск-Забайкальский
;;
711;2302100000000;Край Краснодарский, Район Лабинский
729;2401600000000;Край Красноярский, Район Иланский
765;2700700000000;Край Хабаровский, Район Вяземский`;
const subst = `\1\2\x01\3\x02`;
// 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