import re
regex = re.compile(r"\[class\*=(?:\"|')?(.*?)(?:\"|')?\]")
test_str = ("/***********************\n"
"***** SHOULD MATCH *****\n"
"***********************/\n\n"
"/* No quotes */\n"
"[class*=container] {}\n\n"
"/* Single quotes */\n"
"[class*='container'] {}\n\n"
"/* Double quotes */\n"
"[class*=\"container\"] {}\n\n"
"/* Multiple classes */\n"
"[class*=\"container\"][class*=\"container-large\"] {}\n\n\n\n"
"/**************************\n"
"***** SHOULDN'T MATCH *****\n"
"**************************/\n\n"
"/* With = (exactly equal) */\n"
"[class=\"container\"] {}\n\n"
"/* With ^= (begins with) */\n"
"[class^=\"container\"] {}\n\n"
"/* With $= (ends with) */\n"
"[class$=\"container\"] {}")
subst = ".$1"
result = regex.sub(subst, test_str)
if result:
print(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 Python, please visit: https://docs.python.org/3/library/re.html