re = /(DELIMITER ;;[\S\s]*?DELIMITER ;)/m
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 */ ;'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html