# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(.*)(point\s+c\w+)(.*)point\s+c\w+(.*)|(.+)\bpoint\s+c\w+(.*)"
test_str = ("Street_Name\n"
"Point Chevalier Road Point Cheva\n"
"Point chevalier Road Point Chev\n"
"Point Chevalier Road Point Cheval\n"
"Point Chevalier Road Point Chevali\n"
"Kings Road Point Chevalier\n"
"Point Chevalier")
subst = "\\1\\2\\3\\4\\5\\6"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0, re.IGNORECASE | re.MULTILINE)
if result:
print (result)
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
IyBjb2Rpbmc9dXRmOAojIHRoZSBhYm92ZSB0YWcgZGVmaW5lcyBlbmNvZGluZyBmb3IgdGhpcyBkb2N1bWVudCBhbmQgaXMgZm9yIFB5dGhvbiAyLnggY29tcGF0aWJpbGl0eQoKaW1wb3J0IHJlCgpyZWdleCA9IHIiKC4qKShwb2ludFxzK2NcdyspKC4qKXBvaW50XHMrY1x3KyguKil8KC4rKVxicG9pbnRccytjXHcrKC4qKSIKCnRlc3Rfc3RyID0gKCJTdHJlZXRfTmFtZVxuIgoJIlBvaW50IENoZXZhbGllciBSb2FkIFBvaW50IENoZXZhXG4iCgkiUG9pbnQgY2hldmFsaWVyIFJvYWQgUG9pbnQgQ2hldlxuIgoJIlBvaW50IENoZXZhbGllciBSb2FkIFBvaW50IENoZXZhbFxuIgoJIlBvaW50IENoZXZhbGllciBSb2FkIFBvaW50IENoZXZhbGlcbiIKCSJLaW5ncyBSb2FkIFBvaW50IENoZXZhbGllclxuIgoJIlBvaW50IENoZXZhbGllciIpCgpzdWJzdCA9ICJcXDFcXDJcXDNcXDRcXDVcXDYiCgojIFlvdSBjYW4gbWFudWFsbHkgc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHJlcGxhY2VtZW50cyBieSBjaGFuZ2luZyB0aGUgNHRoIGFyZ3VtZW50CnJlc3VsdCA9IHJlLnN1YihyZWdleCwgc3Vic3QsIHRlc3Rfc3RyLCAwLCByZS5JR05PUkVDQVNFIHwgcmUuTVVMVElMSU5FKQoKaWYgcmVzdWx0OgogICAgcHJpbnQgKHJlc3VsdCkKCiMgTm90ZTogZm9yIFB5dGhvbiAyLjcgY29tcGF0aWJpbGl0eSwgdXNlIHVyIiIgdG8gcHJlZml4IHRoZSByZWdleCBhbmQgdSIiIHRvIHByZWZpeCB0aGUgdGVzdCBzdHJpbmcgYW5kIHN1YnN0aXR1dGlvbi4K