import re
regex = re.compile(r"getObj\(\"Frm_Logintoken\"\).value = \"(.*)\";")
test_str = ("\n"
"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
"<head>\n"
"<META HTTP-EQUIV=\"pragma\" CONTENT=\"no-cache\">\n"
"<META HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache, must-revalidate\">\n"
"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
"<title>ZXHN H108N V2.5</title>\n"
"<LINK REL=\"stylesheet\" HREF=\"css/login.css\" TYPE=\"text/css\" />\n"
"<LINK REL=\"stylesheet\" HREF=\"css/styleen.css\" TYPE=\"text/css\" />\n"
"<script>\n\n"
"function getObj(id)\n"
"{\n"
"return(document.getElementById(id));\n"
"}\n"
"var SetTFlag = 0;\n"
"var maxtime;\n"
"var interval;\n"
"function setTime()\n"
"{\n"
"if(window.name>=60 || window.name<0 || window.name==\"\")\n"
"{\n"
"maxtime = Math.min(60, 0 + 60 - 218143);\n"
"}\n"
"else\n"
"{\n"
"maxtime = window.name;\n"
"}\n"
"if(maxtime>=0)\n"
"{\n"
"seconds = maxtime;\n"
"getObj(\"time\").innerHTML=seconds+\" secs\";\n"
"if (maxtime == 0)\n"
"{\n"
"setDisable();\n"
"SetTFlag =0;\n"
"window.name=\"\";\n"
"if(interval)\n"
"{\n"
"clearInterval(interval);\n"
"interval = 0;\n"
"}\n"
"}\n"
"else\n"
"{\n"
"--maxtime;\n"
"SetTFlag = 1;\n"
"window.name = maxtime;\n"
"}\n"
"}\n"
"}\n"
"function setinner(type)\n"
"{\n"
"if (SetTFlag ==0)\n"
"{\n"
"getObj(\"myLayer\").style.visibility = type ;\n"
"}\n"
"}\n"
"function Transfer_meaning(id,value)\n"
"{\n"
"getObj(id).value=value;\n"
"}\n"
"function ChangeLang()\n"
"{\n"
"var lang = \"English\";\n"
"getObj(\"_lang\").disabled = false;\n"
"getObj(\"Frm_Username\").disabled = true;\n"
"getObj(\"Frm_Password\").disabled = true;\n"
"if(true != getObj(\"TestLang01\").disabled)\n"
"{\n"
"if (\"English\" == lang)\n"
"{\n"
"getObj(\"_lang\").value = \"Chinese\";\n"
"}\n"
"else if (\"Chinese\" == lang)\n"
"{\n"
"getObj(\"_lang\").value = \"English\";\n"
"}\n"
"getObj(\"action\").value = \"setlang\";\n"
"getObj(\"Frm_Username\").disabled = true;\n"
"getObj(\"Frm_Password\").disabled = true;\n"
"getObj(\"LoginId\").disabled = true;\n"
"document.fLogin.submit();\n"
"}\n"
"}\n"
"</script>\n"
"</head>\n\n"
"<body>\n"
"<div id=\"container\">\n"
"<div id=\"myLayer\" onmousedown=\"setinner('hidden')\" style=\"position:absolute; width:185px; height:91px; z-index:9; right: 50px; top: 140px; background: url(img/pop_up.gif) no-repeat; border: 1px none #000000; visibility: hidden;\">\n"
"<div id=\"Layer1\" style=\"position:absolute; width:180px; height:45px; z-index:10; left: 2px; top: 28px;\">\n"
"<table width=\"183\" border=\"0\">\n"
"<tr>\n"
"<td width=\"183\"> <font id=\"errmsg\" class=\"notecontent\" ></font><span id=\"time\" style=\"color:red;display:none;\"></span></td>\n"
"</tr>\n"
"</table>\n"
"</div>\n"
"<div id=\"Layer3\" style=\"position:absolute; width:140px; height:10px; z-index:11; left: 34px; top: 9px; font-size: 8pt;\">\n"
"<font class=\"note\" id=\"errnote\"> Error</font>\n"
"</div>\n"
"</div>\n"
"<!--head²¿·Ö¿ªÊ¼-->\n"
"<div id=\"head\">\n"
"<div class=\"type\"><font id=\"\">ZXHN H108N V2.5</font></div>\n"
"<div id=\"banner\" style=\"background-image:url(img/banner.gif); background-repeat:no-repeat\"></div>\n"
"</div>\n"
"<!--head²¿·Ö½áÊø-->\n"
"<!--content²¿·Ö¿ªÊ¼-->\n"
"<div id=\"loginArea\">\n"
"<form name=\"fLogin\" id=\"fLogin\" method=\"post\" onsubmit=\"return false;\" action=\"\">\n"
"<input type=\"hidden\" name=\"_lang\" id=\"_lang\" value=\"\" disabled>\n"
"<input type=\"hidden\" name=\"frashnum\" id=\"frashnum\" value=\"\">\n"
"<input type=\"hidden\" name=\"action\" id=\"action\" value=\"login\">\n"
"<input type=\"hidden\" name=\"Frm_Logintoken\" id=\"Frm_Logintoken\" value=\"\">\n"
"<!--ÄÚÈÝ¿ªÊ¼-->\n"
"<div class=\"login_frame\">\n"
"<ul class=\"login_title\">\n"
"<li class=\"login_title_left\"></li>\n"
"<li class=\"login_title_center\">Please login to continue...</li>\n\n"
"<li class=\"login_title_right\"></li>\n"
"</ul>\n"
"<div class=\"content login_content\">\n"
"<ul class=\"login_blank\"></ul>\n"
"<ul class=\"login_ul_1\">\n"
"<li class=\"login_li_1\"><span>Username</span></li>\n"
"<li class=\"login_li_2\">\n"
"<input type=\"text\" class=\"username\" name=\"Username\" id=\"Frm_Username\">\n"
"</li>\n"
"</ul>\n"
"<ul class=\"login_blank\"></ul>\n"
"<ul class=\"login_ul_1\">\n"
"<li class=\"login_li_1\"><span>Password</span></li>\n"
"<li class=\"login_li_2\">\n"
"<input type=\"password\" class=\"password\" name=\"Password\" id=\"Frm_Password\">\n"
"</li>\n"
"<li class=\"login_li_3\">\n"
"<input class=\"login\" type=\"submit\" id=\"LoginId\" value=\"Login\" onclick=\"dosubmit()\">\n"
"</li>\n"
"</ul>\n"
"</div>\n"
"</div>\n"
"<!--ÄÚÈݽáÊø-->\n"
"</form>\n"
"</div>\n"
"<!--bottom²¿·Ö¿ªÊ¼-->\n\n"
"<div style=\"font-family: Arial;font-size: 12px;text-align:center;\"> © 2008-2015 ZTE Corporation. All rights reserved </div>\n\n"
"<div class=\"bottom_line\"></div>\n"
"<div id=\"bottomx\"></div>\n"
"<!--bottom²¿·Ö½áÊø-->\n"
"</div>\n"
"</body>\n"
"</html>\n"
"<script>\n\n"
"window.name=\"\";\n\n"
"function SetDisabled()\n"
"{\n"
"getObj(\"errmsg\").innerHTML = \"You have input the wrong username or password for three times. Please try again a minute later.\";\n"
"getObj(\"Frm_Username\").disabled = true;\n"
"getObj(\"Frm_Password\").disabled = true;\n"
"getObj(\"LoginId\").disabled = true;\n\n"
"getObj(\"myLayer\").style.visibility = \"visible\" ;\n"
"getObj(\"time\").style.display = \"\" ;\n"
"interval = setInterval(\"setTime()\",1000);\n"
"}\n"
"function setDisable()\n"
"{\n"
"if (SetTFlag == 1)\n"
"{\n"
"getObj(\"Frm_Username\").disabled = false;\n"
"getObj(\"Frm_Password\").disabled = false;\n"
"getObj(\"LoginId\").disabled = false;\n\n"
"getObj(\"time\").style.display = \"none\";\n"
"getObj(\"myLayer\").style.visibility = \"hidden\";\n"
"}\n"
"}\n"
"function dosubmit()\n"
"{\n"
"if (getObj(\"Frm_Username\").value == \"\")\n"
"{\n"
"getObj(\"errmsg\").innerHTML = \"Username cannot be empty.\";\n"
"getObj(\"myLayer\").style.visibility = \"visible\" ;\n"
"return;\n"
"}\n"
"else\n"
"{\n"
"getObj(\"LoginId\").disabled = true;\n"
"getObj(\"Frm_Logintoken\").value = \"7\";\n"
"document.fLogin.submit();\n"
"}\n"
"}\n"
"</script>\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