# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = (r"ALTER\W.*CLUSTER\n"
r"ALTER\W.*DIMENSION\n"
r"ALTER\W.*EXTERNAL\W.*PROCEDURE\n"
r"ALTER\W.*FULLTEXT\W.*CATALOG\n"
r"ALTER\W.*FULLTEXT\W.*INDEX\n"
r"ALTER\W.*FUNCTION\n"
r"ALTER\W.*INDEX\n"
r"ALTER\W.*INDEXTYPE\n"
r"ALTER\W.*LOGIN\n"
r"ALTER\W.*MATERIALIZED\W.*VIEW\n"
r"ALTER\W.*MATERIALIZED\W.*VIEW\W.*LOG\n"
r"ALTER\W.*METHOD\n"
r"ALTER\W.*NICKNAME\n"
r"ALTER\W.*OPERATOR\n"
r"ALTER\W.*PACKAGE\n"
r"ALTER\W.*PARTITION\W.*FUNCTION\n"
r"ALTER\W.*PARTITION\W.*SCHEME\n"
r"ALTER\W.*PROCECURE\n"
r"ALTER\W.*PROCEDURE\n"
r"ALTER\W.*QUEUE\n"
r"ALTER\W.*REPLICATION\W.*GROUP\n"
r"ALTER\W.*ROUTINE\n"
r"ALTER\W.*SEQUENCE\n"
r"ALTER\W.*SERVER\n"
r"ALTER\W.*SESSION\n"
r"ALTER\W.*TABLE\n"
r"ALTER\W.*TRIGGER\n"
r"ALTER\W.*TYPE\n"
r"ALTER\W.*USER\W.*MAPPING\n"
r"ALTER\W.*VIEW\n"
r"ALTER\W.*XML\W.*SCHEMA\W.*COLLECTION\n"
r"ANALYZE\n"
r"BEGIN\W.*LOGGING\n"
r"BEGIN\W.*QUERY\W.*LOGGING\n"
r"COLLECT\W.*DEMOGRAPHICS\n"
r"COLLECT\W.*STATISTICS\n"
r"COLLMOD\n"
r"COMMENT\n"
r"COMPACT\n"
r"CREATE\W.*ALIAS\n"
r"CREATE\W.*AUTHORIZATION\n"
r"CREATE\W.*CAST\n"
r"CREATE\W.*CLUSTER\n"
r"CREATE\W.*DATABASE\n"
r"CREATE\W.*DEFAULT\n"
r"CREATE\W.*DIMENSION\n"
r"CREATE\W.*DISTINCT\W.*TYPE\n"
r"CREATE\W.*DUPLICATE\n"
r"CREATE\W.*ERROR\W.*TABLE\n"
r"CREATE\W.*EXISTING\W.*TABLE\n"
r"CREATE\W.*EXTERNAL\W.*PROCEDURE\n"
r"CREATE\W.*EXTERNAL\W.*TABLE\n"
r"CREATE\W.*FULLTEXT\W.*CATALOG\n"
r"CREATE\W.*FULLTEXT\W.*INDEX\n"
r"CREATE\W.*FUNCTION\n"
r"CREATE\W.*FUNCTION\W.*MAPPING\n"
r"CREATE\W.*GLOBAL\W.*TEMPORARY\W.*TRACE\W.*TABLE\n"
r"CREATE\W.*HASH\W.*INDEX\n"
r"CREATE\W.*INDEX\n"
r"CREATE\W.*INDEX\W.*EXTENSION\n"
r"CREATE\W.*JOIN\W.*INDEX\n"
r"CREATE\W.*LIBRARY\n"
r"CREATE\W.*LOGIN\n"
r"CREATE\W.*MACRO\n"
r"CREATE\W.*MATERIALIZED\W.*VIEW\n"
r"CREATE\W.*MATERIALIZED\W.*VIEW\W.*LOG\n"
r"CREATE\W.*METHOD\n"
r"CREATE\W.*NICKNAME\n"
r"CREATE\W.*OPERATOR\n"
r"CREATE\W.*OR\W.*REPLACE\W.*FUNCTION\n"
r"CREATE\W.*OR\W.*REPLACE\W.*PROCEDURE\n"
r"CREATE\W.*OR\W.*REPLACE\W.*TRIGGER\n"
r"CREATE\W.*OR\W.*REPLACE\W.*VIEW\n"
r"CREATE\W.*ORDERING\n"
r"CREATE\W.*PACKAGE\n"
r"CREATE\W.*PACKAGE\W.*BODY\n"
r"CREATE\W.*PARATITION\W.*SCHEME\n"
r"CREATE\W.*PARTITION\W.*FUNCTION\n"
r"CREATE\W.*PROCEDURE\n"
r"CREATE\W.*PROFILE\n"
r"CREATE\W.*PROXY_TABLE\n"
r"CREATE\W.*PUBLIC\W.*SYNONYM\n"
r"CREATE\W.*RECURSIVE\W.*VIEW\n"
r"CREATE\W.*REPLICATION\W.*GROUP\n"
r"CREATE\W.*ROLE\n"
r"CREATE\W.*ROUTINE\W.*FROM\n"
r"CREATE\W.*RULE\n"
r"CREATE\W.*SCHEMA\n"
r"CREATE\W.*SEQUENCE\n"
r"CREATE\W.*SESSION\n"
r"CREATE\W.*SYNONYM\n"
r"CREATE\W.*TABLE\n"
r"CREATE\W.*TRANSFORM\n"
r"CREATE\W.*TRIGGER\n"
r"CREATE\W.*TYPE\n"
r"CREATE\W.*TYPE\W.*BODY\n"
r"CREATE\W.*TYPE\W.*MAPPING\n"
r"CREATE\W.*USER\n"
r"CREATE\W.*VIEW\n"
r"CREATE\W.*XML\W.*SCHEMA\W.*COLLECTION\n"
r"DATABASE\n"
r"DELETE\W.*DATABASE\n"
r"DELETE\W.*STATISTICS\n"
r"DELETE\W.*USER\n"
r"DESCRIBE\n"
r"DIAGNOSTIC\W.*\"VALIDATE\W.*INDEX\"\n"
r"DIAGNOSTIC\W.*COSTPRINT\n"
r"DIAGNOSTIC\W.*DUMP\W.*COSTS\n"
r"DIAGNOSTIC\W.*DUMP\W.*SAMPLES\n"
r"DIAGNOSTIC\W.*HELP\W.*COSTS\n"
r"DIAGNOSTIC\W.*HELP\W.*PROFILE\n"
r"DIAGNOSTIC\W.*HELP\W.*SAMPLES\n"
r"DIAGNOSTIC\W.*SET\W.*COSTS\n"
r"DIAGNOSTIC\W.*SET\W.*PROFILE\n"
r"DIAGNOSTIC\W.*SET\W.*SAMPLES\n"
r"DROP\n"
r"DROP\W.*ALIAS\n"
r"DROP\W.*AUTHORIZATION\n"
r"DROP\W.*CAST\n"
r"DROP\W.*CLUSTER\n"
r"DROP\W.*DATABASE\n"
r"DROP\W.*DEFAULT\n"
r"DROP\W.*DIMENSION\n"
r"DROP\W.*DUPLICATE\n"
r"DROP\W.*ERROR\W.*TABLE\n"
r"DROP\W.*FULLTEXT\W.*CATALOG\n"
r"DROP\W.*FULLTEXT\W.*INDEX\n"
r"DROP\W.*FUNCTION\n"
r"DROP\W.*FUNCTION\W.*MAPPING\n"
r"DROP\W.*HASH\W.*INDEX\n"
r"DROP\W.*INDEX\n"
r"DROP\W.*INDEX\W.*EXTENSION\n"
r"DROP\W.*JOIN\W.*INDEX\n"
r"DROP\W.*LIBRARY\n"
r"DROP\W.*LOGIN\n"
r"DROP\W.*MACRO\n"
r"DROP\W.*MATERIALIZED\W.*VIEW\n"
r"DROP\W.*MATERIALIZED\W.*VIEW\W.*LOG\n"
r"DROP\W.*NICKNAME\n"
r"DROP\W.*OPERATOR\n"
r"DROP\W.*ORDERING\n"
r"DROP\W.*OUTLINE\n"
r"DROP\W.*PACKAGE\n"
r"DROP\W.*PARTITION\W.*FUNCTION\n"
r"DROP\W.*PARTITION\W.*SCHEME\n"
r"DROP\W.*PROCEDURE\n"
r"DROP\W.*PROFILE\n"
r"DROP\W.*PUBLIC\W.*SYNONYM\n"
r"DROP\W.*REPLICATION\W.*GROUP\n"
r"DROP\W.*ROLE\n"
r"DROP\W.*ROUTINE\n"
r"DROP\W.*RULE\n"
r"DROP\W.*SEQUENCE\n"
r"DROP\W.*SESSION\n"
r"DROP\W.*STATISTICS\n"
r"DROP\W.*SYNONYM\n"
r"DROP\W.*TABLE\n"
r"DROP\W.*TRANSFORM\n"
r"DROP\W.*TRIGGER\n"
r"DROP\W.*TYPE\n"
r"DROP\W.*TYPE\W.*BODY\n"
r"DROP\W.*TYPE\W.*MAPPING\n"
r"DROP\W.*USER\n"
r"DROP\W.*VIEW\n"
r"DROP\W.*VIEW\W.*HIERARCHY\n"
r"DROP\W.*XML\W.*SCHEMA\W.*COLLECTION\n"
r"DUMP\W.*EXPLAIN\n"
r"EMPTYCAPPED\n"
r"END\W.*LOGGING\n"
r"END\W.*QUERY\W.*LOGGING\n"
r"GIVE\n"
r"GRANT\n"
r"GRANT\W.*LOGON\n"
r"HELP\n"
r"HELP\W.*CAST\n"
r"HELP\W.*COLUMN\n"
r"HELP\W.*CONSTRAINT\n"
r"HELP\W.*DATABASE\n"
r"HELP\W.*ERROR\W.*TABLE\n"
r"HELP\W.*FUNCTION\n"
r"HELP\W.*HASH\W.*INDEX\n"
r"HELP\W.*INDEX\n"
r"HELP\W.*JOIN\W.*INDEX\n"
r"HELP\W.*MACRO\n"
r"HELP\W.*METHOD\n"
r"HELP\W.*PROCEDURE\n"
r"HELP\W.*REPLICATION\W.*GROUP\n"
r"HELP\W.*SESSION\n"
r"HELP\W.*STATISTICS\n"
r"HELP\W.*TABLE\n"
r"HELP\W.*TRANSFORM\n"
r"HELP\W.*TRIGGER\n"
r"HELP\W.*TYPE\n"
r"HELP\W.*USER\n"
r"HELP\W.*VIEW\n"
r"HELP\W.*VOLATILE\W.*TABLE\n"
r"INITIATE\W.*INDEX\W.*ANALYSIS\n"
r"INSERT\W.*EXPLAIN\n"
r"LOCK\W.*TABLE\n"
r"LOGGING\W.*ONLINE\W.*ARCHIVE\W.*OFF\n"
r"LOGGING\W.*ONLINE\W.*ARCHIVE\W.*ON\n"
r"MODIFY\W.*DATABASE\n"
r"MODIFY\W.*PROFILE\n"
r"MODIFY\W.*USER\n"
r"MOVE\W.*TABLE\n"
r"REMOVE\W.*JAVA\n"
r"RENAME\n"
r"RENAME\W.*COLUMN\n"
r"RENAME\W.*FUNCTION\n"
r"RENAME\W.*INDEX\n"
r"RENAME\W.*MACRO\n"
r"RENAME\W.*PROCEDURE\n"
r"RENAME\W.*SEQUENCE\n"
r"RENAME\W.*TABLE\n"
r"RENAME\W.*TRIGGER\n"
r"RENAME\W.*VIEW\n"
r"RENAMECOLLECTION\n"
r"REORG\n"
r"REPLACE\W.*AUTHORIZATION\n"
r"REPLACE\W.*CAST\n"
r"REPLACE\W.*FUNCTION\n"
r"REPLACE\W.*MACRO\n"
r"REPLACE\W.*METHOD\n"
r"REPLACE\W.*ORDERING\n"
r"REPLACE\W.*PROCEDURE\n"
r"REPLACE\W.*RECURSIVE\W.*VIEW\n"
r"REPLACE\W.*TRANSFORM\n"
r"REPLACE\W.*TRIGGER\n"
r"REPLACE\W.*VIEW\n"
r"RESTART\W.*INDEX\W.*ANALYSIS\n"
r"REVOKE\n"
r"REVOKE\W.*LOGON\n"
r"SET\W.*ENCRYPTION\W.*PASSWORD\n"
r"SET\W.*QUERY_BAND\n"
r"SET\W.*ROLE\n"
r"SET\W.*SESSION\n"
r"SET\W.*TIME\W.*ZONE\n"
r"SHOW\W.*CAST\n"
r"SHOW\W.*ERROR\W.*TABLE\n"
r"SHOW\W.*FUNCTION\n"
r"SHOW\W.*HASH\W.*INDEX\n"
r"SHOW\W.*JOIN\W.*INDEX\n"
r"SHOW\W.*MACRO\n"
r"SHOW\W.*METHOD\n"
r"SHOW\W.*PROCEDURE\n"
r"SHOW\W.*REPLICATION\W.*GROUP\n"
r"SHOW\W.*TABLE\n"
r"SHOW\W.*TRIGGER\n"
r"SHOW\W.*TYPE\n"
r"SHOW\W.*VIEW\n"
r"TRUNCATE\W.*TABLE\n"
r"UPDATE\W.*DIMENSION\W.*MEMBER")
test_str = ("ALTER CLUSTER\n"
"ALTER DIMENSION\n"
"ALTER EXTERNAL PROCEDURE\n"
"ALTER FULLTEXT CATALOG\n"
"ALTER FULLTEXT INDEX\n"
"ALTER FUNCTION\n"
"ALTER INDEX\n"
"ALTER INDEXTYPE\n"
"ALTER LOGIN\n"
"ALTER MATERIALIZED VIEW\n"
"ALTER MATERIALIZED VIEW LOG\n"
"ALTER METHOD\n"
"ALTER NICKNAME\n"
"ALTER OPERATOR\n"
"ALTER PACKAGE\n"
"ALTER PARTITION FUNCTION\n"
"ALTER PARTITION SCHEME\n"
"ALTER PROCECURE\n"
"ALTER PROCEDURE\n"
"ALTER QUEUE\n"
"ALTER REPLICATION GROUP\n"
"ALTER ROUTINE\n"
"ALTER SEQUENCE\n"
"ALTER SERVER\n"
"ALTER SESSION\n"
"ALTER TABLE\n"
"ALTER TRIGGER\n"
"ALTER TYPE\n"
"ALTER USER MAPPING\n"
"ALTER VIEW\n"
"ALTER XML SCHEMA COLLECTION\n"
"ANALYZE\n"
"BEGIN LOGGING\n"
"BEGIN QUERY LOGGING\n"
"COLLECT DEMOGRAPHICS\n"
"COLLECT STATISTICS\n"
"COLLMOD\n"
"COMMENT\n"
"COMPACT\n"
"CREATE ALIAS\n"
"CREATE AUTHORIZATION\n"
"CREATE CAST\n"
"CREATE CLUSTER\n"
"CREATE DATABASE\n"
"CREATE DEFAULT\n"
"CREATE DIMENSION\n"
"CREATE DISTINCT TYPE\n"
"CREATE DUPLICATE\n"
"CREATE ERROR TABLE\n"
"CREATE EXISTING TABLE\n"
"CREATE EXTERNAL PROCEDURE\n"
"CREATE EXTERNAL TABLE\n"
"CREATE FULLTEXT CATALOG\n"
"CREATE FULLTEXT INDEX\n"
"CREATE FUNCTION\n"
"CREATE FUNCTION MAPPING\n"
"CREATE GLOBAL TEMPORARY TRACE TABLE\n"
"CREATE HASH INDEX\n"
"CREATE INDEX\n"
"CREATE INDEX EXTENSION\n"
"CREATE JOIN INDEX\n"
"CREATE LIBRARY\n"
"CREATE LOGIN\n"
"CREATE MACRO\n"
"CREATE MATERIALIZED VIEW\n"
"CREATE MATERIALIZED VIEW LOG\n"
"CREATE METHOD\n"
"CREATE NICKNAME\n"
"CREATE OPERATOR\n"
"CREATE OR REPLACE FUNCTION\n"
"CREATE OR REPLACE PROCEDURE\n"
"CREATE OR REPLACE TRIGGER\n"
"CREATE OR REPLACE VIEW\n"
"CREATE ORDERING\n"
"CREATE PACKAGE\n"
"CREATE PACKAGE BODY\n"
"CREATE PARATITION SCHEME\n"
"CREATE PARTITION FUNCTION\n"
"CREATE PROCEDURE\n"
"CREATE PROFILE\n"
"CREATE PROXY_TABLE\n"
"CREATE PUBLIC SYNONYM\n"
"CREATE RECURSIVE VIEW\n"
"CREATE REPLICATION GROUP\n"
"CREATE ROLE\n"
"CREATE ROUTINE FROM\n"
"CREATE RULE\n"
"CREATE SCHEMA\n"
"CREATE SEQUENCE\n"
"CREATE SESSION\n"
"CREATE SYNONYM\n"
"CREATE TABLE\n"
"CREATE TRANSFORM\n"
"CREATE TRIGGER\n"
"CREATE TYPE\n"
"CREATE TYPE BODY\n"
"CREATE TYPE MAPPING\n"
"CREATE USER\n"
"CREATE VIEW\n"
"CREATE XML SCHEMA COLLECTION\n"
"DATABASE\n"
"DELETE DATABASE\n"
"DELETE STATISTICS\n"
"DELETE USER\n"
"DESCRIBE\n"
"DIAGNOSTIC \"VALIDATE INDEX\"\n"
"DIAGNOSTIC COSTPRINT\n"
"DIAGNOSTIC DUMP COSTS\n"
"DIAGNOSTIC DUMP SAMPLES\n"
"DIAGNOSTIC HELP COSTS\n"
"DIAGNOSTIC HELP PROFILE\n"
"DIAGNOSTIC HELP SAMPLES\n"
"DIAGNOSTIC SET COSTS\n"
"DIAGNOSTIC SET PROFILE\n"
"DIAGNOSTIC SET SAMPLES\n"
"DROP\n"
"DROP ALIAS\n"
"DROP AUTHORIZATION\n"
"DROP CAST\n"
"DROP CLUSTER\n"
"DROP DATABASE\n"
"DROP DEFAULT\n"
"DROP DIMENSION\n"
"DROP DUPLICATE\n"
"DROP ERROR TABLE\n"
"DROP FULLTEXT CATALOG\n"
"DROP FULLTEXT INDEX\n"
"DROP FUNCTION\n"
"DROP FUNCTION MAPPING\n"
"DROP HASH INDEX\n"
"DROP INDEX\n"
"DROP INDEX EXTENSION\n"
"DROP JOIN INDEX\n"
"DROP LIBRARY\n"
"DROP LOGIN\n"
"DROP MACRO\n"
"DROP MATERIALIZED VIEW\n"
"DROP MATERIALIZED VIEW LOG\n"
"DROP NICKNAME\n"
"DROP OPERATOR\n"
"DROP ORDERING\n"
"DROP OUTLINE\n"
"DROP PACKAGE\n"
"DROP PARTITION FUNCTION\n"
"DROP PARTITION SCHEME\n"
"DROP PROCEDURE\n"
"DROP PROFILE\n"
"DROP PUBLIC SYNONYM\n"
"DROP REPLICATION GROUP\n"
"DROP ROLE\n"
"DROP ROUTINE\n"
"DROP RULE\n"
"DROP SEQUENCE\n"
"DROP SESSION\n"
"DROP STATISTICS\n"
"DROP SYNONYM\n"
"DROP TABLE\n"
"DROP TRANSFORM\n"
"DROP TRIGGER\n"
"DROP TYPE\n"
"DROP TYPE BODY\n"
"DROP TYPE MAPPING\n"
"DROP USER\n"
"DROP VIEW\n"
"DROP VIEW HIERARCHY\n"
"DROP XML SCHEMA COLLECTION\n"
"DUMP EXPLAIN\n"
"EMPTYCAPPED\n"
"END LOGGING\n"
"END QUERY LOGGING\n"
"GIVE\n"
"GRANT\n"
"GRANT LOGON\n"
"HELP\n"
"HELP CAST\n"
"HELP COLUMN\n"
"HELP CONSTRAINT\n"
"HELP DATABASE\n"
"HELP ERROR TABLE\n"
"HELP FUNCTION\n"
"HELP HASH INDEX\n"
"HELP INDEX\n"
"HELP JOIN INDEX\n"
"HELP MACRO\n"
"HELP METHOD\n"
"HELP PROCEDURE\n"
"HELP REPLICATION GROUP\n"
"HELP SESSION\n"
"HELP STATISTICS\n"
"HELP TABLE\n"
"HELP TRANSFORM\n"
"HELP TRIGGER\n"
"HELP TYPE\n"
"HELP USER\n"
"HELP VIEW\n"
"HELP VOLATILE TABLE\n"
"INITIATE INDEX ANALYSIS\n"
"INSERT EXPLAIN\n"
"LOCK TABLE\n"
"LOGGING ONLINE ARCHIVE OFF\n"
"LOGGING ONLINE ARCHIVE ON\n"
"MODIFY DATABASE\n"
"MODIFY PROFILE\n"
"MODIFY USER\n"
"MOVE TABLE\n"
"REMOVE JAVA\n"
"RENAME\n"
"RENAME COLUMN\n"
"RENAME FUNCTION\n"
"RENAME INDEX\n"
"RENAME MACRO\n"
"RENAME PROCEDURE\n"
"RENAME SEQUENCE\n"
"RENAME TABLE\n"
"RENAME TRIGGER\n"
"RENAME VIEW\n"
"RENAMECOLLECTION\n"
"REORG\n"
"REPLACE AUTHORIZATION\n"
"REPLACE CAST\n"
"REPLACE FUNCTION\n"
"REPLACE MACRO\n"
"REPLACE METHOD\n"
"REPLACE ORDERING\n"
"REPLACE PROCEDURE\n"
"REPLACE RECURSIVE VIEW\n"
"REPLACE TRANSFORM\n"
"REPLACE TRIGGER\n"
"REPLACE VIEW\n"
"RESTART INDEX ANALYSIS\n"
"REVOKE\n"
"REVOKE LOGON\n"
"SET ENCRYPTION PASSWORD\n"
"SET QUERY_BAND\n"
"SET ROLE\n"
"SET SESSION\n"
"SET TIME ZONE\n"
"SHOW CAST\n"
"SHOW ERROR TABLE\n"
"SHOW FUNCTION\n"
"SHOW HASH INDEX\n"
"SHOW JOIN INDEX\n"
"SHOW MACRO\n"
"SHOW METHOD\n"
"SHOW PROCEDURE\n"
"SHOW REPLICATION GROUP\n"
"SHOW TABLE\n"
"SHOW TRIGGER\n"
"SHOW TYPE\n"
"SHOW VIEW\n"
"TRUNCATE TABLE\n"
"UPDATE DIMENSION MEMBER")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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 Python, please visit: https://docs.python.org/3/library/re.html