import re
regex = re.compile(r"^([\s]{2,})(?!.*[&@])(.*?)([,{])\n", flags=re.MULTILINE)
test_str = ("#term-header {\n"
" padding: 20px 0 17px;\n"
" margin: 0 10px 30px;\n"
" &::before,\n"
" &::after {\n"
" margin-left: -11px;\n"
" border-width: 12px 10.5px 0 10.5px;\n"
" }\n"
" &::before {\n"
" bottom: -12px;\n"
" }\n"
" &::after {\n"
" bottom: -10px;\n"
" }\n"
" h1 {\n"
" font-size: 20px;\n"
" span {\n"
" font-size: 27px;\n"
" }\n"
" }\n"
" dl {\n"
" margin: 20px 0 0;\n"
" dt {\n"
" width: 100px;\n"
" }\n"
" dd {\n"
" font-size: 11px;\n"
" }\n"
" }\n"
"}\n\n"
".slick-next,\n"
".slick-prev {\n"
" width: 35px;\n"
" height: 35px;\n"
"}\n"
".slick-prev {\n"
" left: 5px;\n"
" transform: translate3d(-30px, 0, 0);\n"
" &::after {\n"
" left: 14px;\n"
" }\n"
"}\n"
".slick-next {\n"
" right: 5px;\n"
" transform: translate3d(30px, 0, 0);\n"
" &::after {\n"
" right: 14px;\n"
" }\n"
"}\n"
".ready.inview {\n"
" .slick-prev {\n"
" &.slick-disabled {\n"
" transform: translate3d(-30px, 0, 0);\n"
" }\n"
" }\n"
" .slick-next {\n"
" &.slick-disabled {\n"
" transform: translate3d(30px, 0, 0);\n"
" }\n"
" }\n"
"}\n\n"
".wp-editor {\n"
" font-family: var(--fontFamily);\n"
" font-size: var(--fontSize);\n"
" line-height: var(--lineHeight);\n"
" & h3,\n"
" & h4,\n"
" & p {\n"
" margin: var(--wpEditorMargin) 0;\n"
" overflow: hidden;\n"
" &:first-child {\n"
" margin-top: 0;\n"
" }\n"
" &:last-child {\n"
" margin-bottom: 0;\n"
" }\n"
" }\n"
" & h3 {\n"
" font-size: 14px;\n"
" }\n"
" & h4 {\n"
" font-size: 13px;\n"
" }\n"
" & a {\n"
" color: var(--linkColor);\n"
" text-decoration: underline;\n"
" &:hover {\n"
" text-decoration: none;\n"
" }\n"
" }\n"
" & img {\n"
" max-width: 100%;\n"
" height: auto;\n"
" }\n"
" & blockquote {\n"
" padding-left: 15px;\n"
" margin: var(--wpEditorMargin) 0;\n"
" font-weight: bold;\n"
" border-left: 5px solid var(--borderColor);\n"
" @media (--viewport-medium) {\n"
" padding-left: 35px;\n"
" }\n"
" }\n"
"}")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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