const regex = new RegExp('(DELIMITER ;;[\\S\\s]*?DELIMITER ;)', 'gm')
const str = `--
-- Dumping data for table \`SOME_TABLE\`
--
LOCK TABLES \`SOME_TABLE\` WRITE;
/*!40000 ALTER TABLE \`SOME_TABLE\` DISABLE KEYS */;
/*!40000 ALTER TABLE \`SOME_TABLE\` ENABLE KEYS */;
UNLOCK TABLES;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 */ /*!50003 TRIGGER SOME_TABLE_BU BEFORE UPDATE ON SOME_TABLE
FOR EACH ROW
BEGIN
IF (OLD.DUE_DATE<>NEW.DUE_DATE) THEN
SET NEW.COUNT=0;
INSERT INTO SOME_TABLE_RESET_COUNT(SOME_TABLE_ID,CAL_DUE_DATE,COUNT,USER_ID) VALUES(OLD.ID,OLD.DUE_DATE,OLD.CYCLE_COUNT,NEW.CAL_BY);
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
/*!50003 SET character_set_client = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 */ /*!50003 TRIGGER SOME_TABLE_AU
AFTER UPDATE ON SOME_TABLE
FOR EACH ROW
BEGIN
IF IFNULL(OLD.RESET_REASON,'') <> IFNULL(NEW.RESET_REASON,'') THEN
INSERT INTO SOME_TABLE_RESET_NEXT_DUE(REASON,SOME_TABLE_ID,NEW_CAL_DATE,OLD_CAL_DATE)
VALUES(NEW.RESET_REASON,NEW.ID,NEW.DUE_DATE,OLD.DUE_DATE);
END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
/*!50003 SET character_set_client = @saved_cs_client */ ;
/*!50003 SET character_set_results = @saved_cs_results */ ;
/*!50003 SET collation_connection = @saved_col_connection */ ;`;
// 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