import re
regex = re.compile(r"""
(\w+)\.(\w+)?
""", flags=re.UNICODE | re.MULTILINE | re.IGNORECASE | re.VERBOSE)
test_str = ("a[a]=20&a[]=21\n"
"a.a=20&a.=21\n\n"
"a[77]=20&a[]=21\n"
"a.77=20&a.=21\n\n"
"a[]=19&a[77]=20&a[]=21\n"
"a.=19&a.77=20&a.=21\n\n"
"a[b][]=1&a[b][]=2&a[b]=3&a[b][]=4\n"
"a.b.=1&a.b.=2&a.b=3&a.b.=4\n\n"
"a[][]=20&a[][]=21\n"
"a..=20&a..=21\n\n"
"a[]=10&a[][]=20&a[][]=21\n"
"a.=10&a..=20&a..=21")
subst = "\\1[\\2]"
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