# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?=(?:....)*$)"
test_str = ("<html>\n"
"<head>\n"
"<title>Credit Card Test</title>\n"
"</head>\n\n"
"<body>\n"
"<h1>Credit Card Test</h1>\n\n"
"<form>\n"
"<p>Please enter your credit card number:</p>\n\n"
"<p><input type=\"text\" size=\"20\" name=\"cardnumber\"\n"
" onkeyup=\"validatecardnumber(this.value)\"></p>\n\n"
"<p id=\"notice\">(no card number entered)</p>\n"
"</form>\n\n"
"<script>\n"
"function validatecardnumber(cardnumber) {\n"
" // Strip spaces and dashes\n"
" cardnumber = cardnumber.replace(/[ -]/g, '');\n"
" // See if the card is valid\n"
" // The regex will capture the number in one of the capturing groups\n"
" var match = /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|↵\n"
"(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])↵\n"
"[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/.exec(cardnumber);\n"
" if (match) {\n"
" // List of card types, in the same order as the regex capturing groups\n"
" var types = ['Visa', 'MasterCard', 'Discover', 'American Express',\n"
" 'Diners Club', 'JCB'];\n"
" // Find the capturing group that matched\n"
" // Skip the zeroth element of the match array (the overall match)\n"
" for (var i = 1; i < match.length; i++) {\n"
" if (match[i]) {\n"
" // Display the card type for that group\n"
" document.getElementById('notice').innerHTML = types[i - 1];\n"
" break;\n"
" }\n"
" }\n"
" } else {\n"
" document.getElementById('notice').innerHTML = '(invalid card number)';\n"
" }\n"
"}\n"
"</script>\n"
"</body>\n"
"</html>\n")
subst = "-"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
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.
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