const regex = new RegExp('(?<=statement: )([ _\\-|0-9,:;\\.=A-Za-z\\(\\)"\\n\\t\\'].+?)(?=\\d{4}-\\d{2}-\\d{2}|$)', 'gs')
const str = `2015-05-20 02:27:41 GMT 555bbcfd.3685 cmsmgt001 LOG: statement: COMMIT
2015-05-20 02:27:41 GMT 555bcdb3.3908 cmsmgt001 LOG: statement: BEGIN
2015-05-20 02:27:41 GMT 555bcdb3.3908 cmsmgt001 LOG: statement: SET search_path TO pC35126D4,public;
2015-05-20 02:27:41 GMT 555bcdb3.3908 cmsmgt001 LOG: statement: SELECT cms_images.id, cms_images.url, cms_images.uploaded_filename, cms_images.size, cms_images.width, cms_images.height, cms_images.ext, cms_images.data, cms_images.hash_sha1, cms_images._created, cms_images._modified, cms_images._hash
FROM cms_images
WHERE cms_images.id = 912148443466212857204723
LIMIT 1
2015-05-20 02:27:41 GMT 555bcdb3.3908 cmsmgt001 LOG: statement: ROLLBACK
2015-05-20 02:27:41 GMT 555bbb9f.364b cmsmgt001 LOG: statement: BEGIN
2015-05-20 02:27:41 GMT 555bbb9f.364b cmsmgt001 LOG: statement: SET search_path TO pC35126D4,public;
2015-05-20 02:27:41 GMT 555bbb9f.364b cmsmgt001 LOG: statement: SELECT cms_images.id, cms_images.url, cms_images.uploaded_filename, cms_images.size, cms_images.width, cms_images.height, cms_images.ext, cms_images.data, cms_images.hash_sha1, cms_images._created, cms_images._modified, cms_images._hash
FROM cms_images
WHERE cms_images.hash_sha1 = '035f3fac7dd057bac10f2203ecb8ea6a97d2116c'
LIMIT 1
2015-05-20 02:27:41 GMT 555bbb9f.364b cmsmgt001 LOG: statement: ROLLBACK
2015-05-20 02:27:41 GMT 555bc0dd.372c cmsmgt001 LOG: statement: BEGIN
2015-05-20 02:27:41 GMT 555bc0dd.372c cmsmgt001 LOG: statement: SET search_path TO pC35126D4,public;
2015-05-20 02:27:41 GMT 555bc0dd.372c cmsmgt001 LOG: statement: SELECT cms_images.id, cms_images.url, cms_images.uploaded_filename, cms_images.size, cms_images.width, cms_images.height, cms_images.ext, cms_images.data, cms_images.hash_sha1, cms_images._created, cms_images._modified, cms_images._hash
FROM cms_images
WHERE cms_images.hash_sha1 = '035f3fac7dd057bac10f2203ecb8ea6a97d2116c'
LIMIT 1
2015-05-20 02:27:41 GMT 555bc0dd.372c cmsmgt001 LOG: statement: ROLLBACK
2015-05-20 02:27:41 GMT 555bbc90.3665 cmsmgt001 LOG: statement: BEGIN
2015-05-20 02:27:41 GMT 555bbc90.3665 cmsmgt001 LOG: statement: SET search_path TO pC35126D4,public;
2015-05-20 02:27:41 GMT 555bbc90.3665 cmsmgt001 LOG: statement: SELECT cms_celebrities.id, cms_celebrities.vendor, cms_celebrities.tms_person_id, cms_celebrities.birth_year, cms_celebrities.first_name, cms_celebrities.last_name, cms_celebrities.display_name, cms_celebrities.image_id, cms_celebrities._created, cms_celebrities._modified, cms_celebrities._hash
FROM cms_celebrities
WHERE cms_celebrities.tms_person_id = '47088'
LIMIT 1
2015-05-20 02:27:41 GMT 555bbc90.3665 cmsmgt001 LOG: statement: ROLLBACK
2015-05-20 02:27:41 GMT 555bbcc8.3670 cmsmgt001 LOG: statement: BEGIN
2015-05-20 02:27:41 GMT 555bbcc8.3670 cmsmgt001 LOG: statement: SET search_path TO pC35126D4,public;
2015-05-20 02:27:41 GMT 555bbcc8.3670 cmsmgt001 LOG: statement: select nextval('"cms_celebrities_id_seq"')
2015-05-20 02:27:41 GMT 555bbcc8.3670 cmsmgt001 LOG: statement: INSERT INTO cms_celebrities (id, vendor, tms_person_id, birth_year, first_name, last_name, display_name, image_id, _created, _modified, _hash) VALUES (1571, 'gracenote', '47088', 1925, 'Monique', 'Van Vooren', 'Monique Van Vooren', 1701, '2015-05-20T02:27:41.768803'::timestamp, '2015-05-20T02:27:41.768803'::timestamp, '2015-05-20 02:27:41.768803|7111|0.7293680991519143')
2015-05-20 02:27:41 GMT 555bbcc8.3670 cmsmgt001 LOG: statement: COMMIT
2015-05-20 02:27:41 GMT 555bbd8b.3698 cmsmgt001 LOG: statement: BEGIN
2015-05-20 02:27:41 GMT 555bbd8b.3698 cmsmgt001 LOG: statement: SET search_path TO pC35126D4,public;
2015-05-20 02:27:41 GMT 555bbd8b.3698 cmsmgt001 LOG: statement: SELECT cms_asset_celebrities.id, cms_asset_celebrities.asset_id, cms_asset_celebrities.celebrity_id, cms_asset_celebrities.role, cms_asset_celebrities.order_pos, cms_asset_celebrities._created, cms_asset_celebrities._modified, cms_asset_celebrities._hash
FROM cms_asset_celebrities
WHERE celebrity_id=1571
LIMIT 1`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
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