# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"User name\s+(?<user_name>[a-zA-Z|\.|\-|\_|0-9]+)\nFull Name\s+(?<full_name>[a-zA-Z|\.|\-|\_|0-9| ]*)\nComment\s+(?<comment>[a-zA-Z|\.|\-|\_|0-9| ]+)\nUser's comment\s+(?<user_comment>[a-zA-Z|\.|\-|\_|0-9| ]+)\nCountry\/region code\s+(?<country_region_code>[a-zA-Z|\.|\-|\_|0-9| |\(|\)]+)\nAccount active\s+(?<account_active>[No|Yes]+)\nAccount expires\s+(?<account_expiring_date_and_time>Never|(?<account_expiring_date>(?<account_expiring_date_month>\d{1,2})\/(?<account_expiring_date_day>\d{1,2})\/(?<account_expiring_date_year>\d{4}))\s(?<account_expiring_time>(?<account_expiring_time_hours>\d{1,2})\:(?<account_expiring_time_mins>\d{1,2})\:(?<account_expiring_time_seconds>\d{1,2})\s(?<account_expiring_time_am_pm>AM|PM)))\n{2}Password last set\s+(?<password_last_set_date_and_time>Never|(?<password_last_set_date>(?<password_last_set_date_month>\d{1,2})\/(?<password_last_set_date_day>\d{1,2})\/(?<password_last_set_date_year>\d{4}))\s(?<password_last_set_time>(?<password_last_set_time_hours>\d{1,2})\:(?<password_last_set_time_mins>\d{1,2})\:(?<password_last_set_time_seconds>\d{1,2})\s(?<password_last_set_time_am_pm>AM|PM)))\nPassword expires\s+(?<password_expires_date_and_time>Never|(?<password_expires__date>(?<password_expires_date_month>\d{1,2})\/(?<password_expires_date_day>\d{1,2})\/(?<password_expires_date_year>\d{4}))\s(?<password_expires_time>(?<password_expires_time_hours>\d{1,2})\:(?<password_expires_time_mins>\d{1,2})\:(?<password_expires_time_seconds>\d{1,2})\s(?<password_expires_time_am_pm>AM|PM)))\nPassword changeable\s+(?<password_change_date_and_time>Never|(?<password_change_date>(?<password_change_date_month>\d{1,2})\/(?<password_change_date_day>\d{1,2})\/(?<password_change_date_year>\d{4}))\s(?<password_change_time>(?<password_change_time_hours>\d{1,2})\:(?<password_change_time_mins>\d{1,2})\:(?<password_changes_time_seconds>\d{1,2})\s(?<password_change_time_am_pm>AM|PM)))\nPassword required\s+(?<account_required>[Yes|No]+)\nUser\smay change password\s+(?<user_may_change_password>[No|Yes]+)\n{2}Workstations allowed\s+(?<workstations_allowed>.*)\nLogon script\s+(?<logon_script>.*)\nUser profile\s+(?<user_profile>.*)\nHome directory\s+(?<home_directory>.*)\nLast logon\s+(?<last_logon>(?<last_logon_date_and_time>Never|(?<last_logon_date>(?<last_logon_date_month>\d{1,2})\/(?<last_logon_date_day>\d{1,2})\/(?<last_logon_date_year>\d{4}))\s(?<last_logon_time>(?<last_logon_time_hours>\d{1,2})\:(?<last_logon_time_mins>\d{1,2})\:(?<last_logon_time_seconds>\d{1,2})\s(?<last_logon_time_am_pm>AM|PM))))\n{2}Logon hours allowed\s+(((?<day>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon>(?<starting_allowed_logon_hours>\d{1,2})\:(?<starting_allowed_logon_mins>\d{1,2})\:(?<starting_allowed_logon_seconds>\d{1,2})\s(?<starting_allowed_logon_am_pm>[AM|PM]+))\s\-\s(?<endding_allowed_logon>(?<ending_allowed_logon_hours>\d{1,2})\:(?<ending_allowed_logon_mins>\d{1,2})\:(?<ending_allowed_logon_seconds>\d{1,2})\s(?<ending_allowed_logon_am_pm>[AM|PM]+))?\n?\s+?)?((?<day1>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon1>(?<starting_allowed_logon_hours1>\d{1,2})\:(?<starting_allowed_logon_mins1>\d{1,2})\:(?<starting_allowed_logon_seconds1>\d{1,2})\s(?<starting_allowed_logon_am_pm1>[AM|PM]+))\s\-\s(?<endding_allowed_logon1>(?<ending_allowed_logon_hours1>\d{1,2})\:(?<ending_allowed_logon_mins1>\d{1,2})\:(?<ending_allowed_logon_seconds1>\d{1,2})\s(?<ending_allowed_logon_am_pm1>[AM|PM]+))?\n?\s+?)?((?<day2>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon2>(?<starting_allowed_logon_hours2>\d{1,2})\:(?<starting_allowed_logon_mins2>\d{1,2})\:(?<starting_allowed_logon_seconds2>\d{1,2})\s(?<starting_allowed_logon_am_pm2>[AM|PM]+))\s\-\s(?<endding_allowed_logon2>(?<ending_allowed_logon_hours2>\d{1,2})\:(?<ending_allowed_logon_mins2>\d{1,2})\:(?<ending_allowed_logon_seconds2>\d{1,2})\s(?<ending_allowed_logon_am_pm2>[AM|PM]+))?\n?\s+?)?((?<day3>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon3>(?<starting_allowed_logon_hours3>\d{1,2})\:(?<starting_allowed_logon_mins3>\d{1,2})\:(?<starting_allowed_logon_seconds3>\d{1,2})\s(?<starting_allowed_logon_am_pm3>[AM|PM]+))\s\-\s(?<endding_allowed_logon3>(?<ending_allowed_logon_hours3>\d{1,2})\:(?<ending_allowed_logon_mins3>\d{1,2})\:(?<ending_allowed_logon_seconds3>\d{1,2})\s(?<ending_allowed_logon_am_pm3>[AM|PM]+))?\n?\s+?)?((?<day4>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon4>(?<starting_allowed_logon_hours4>\d{1,2})\:(?<starting_allowed_logon_mins4>\d{1,2})\:(?<starting_allowed_logon_seconds4>\d{1,2})\s(?<starting_allowed_logon_am_pm4>[AM|PM]+))\s\-\s(?<endding_allowed_logon4>(?<ending_allowed_logon_hours4>\d{1,2})\:(?<ending_allowed_logon_mins4>\d{1,2})\:(?<ending_allowed_logon_seconds4>\d{1,2})\s(?<ending_allowed_logon_am_pm4>[AM|PM]+))?\n?\s+?)?((?<day5>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon5>(?<starting_allowed_logon_hours5>\d{1,2})\:(?<starting_allowed_logon_mins5>\d{1,2})\:(?<starting_allowed_logon_seconds5>\d{1,2})\s(?<starting_allowed_logon_am_pm5>[AM|PM]+))\s\-\s(?<endding_allowed_logon5>(?<ending_allowed_logon_hours5>\d{1,2})\:(?<ending_allowed_logon_mins5>\d{1,2})\:(?<ending_allowed_logon_seconds5>\d{1,2})\s(?<ending_allowed_logon_am_pm5>[AM|PM]+))?\n?\s+?)?((?<day6>[Friday|Saturday|Sunday|Monday|Tuesday|Wednesday|Thursday]+)\s(?<starting_allowed_logon6>(?<starting_allowed_logon_hours6>\d{1,2})\:(?<starting_allowed_logon_mins6>\d{1,2})\:(?<starting_allowed_logon_seconds6>\d{1,2})\s(?<starting_allowed_logon_am_pm6>[AM|PM]+))\s\-\s(?<endding_allowed_logon6>(?<ending_allowed_logon_hours6>\d{1,2})\:(?<ending_allowed_logon_mins6>\d{1,2})\:(?<ending_allowed_logon_seconds6>\d{1,2})\s(?<ending_allowed_logon_am_pm6>[AM|PM]+))?\n?\s+?)?)\nLocal Group Memberships\s+(((?:\*)(?<local_group_memberships>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships1>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships2>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships3>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships4>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships5>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships6>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships7>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships8>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships9>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<local_group_memberships10>\b[\s|\w]+\b)[\s|\n]*)?)?Global Group memberships\s+(((?:\*)(?<global_group_memberships>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships1>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships2>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships3>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships4>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships5>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships6>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships7>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships8>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships9>\b[\s|\w]+\b)[\s|\n]*)?((?:\*)(?<global_group_memberships10>\b[\s|\w]+\b)[\s|\n]*)?)The command completed successfully\."
test_str = ("User name x.xxxxxx\n"
"Full Name Xxx X. Xxxxxxx\n"
"Comment Xxxxx Xxxxxx Xxxxx\n"
"User's comment Xxxxxxxxxxxxxx\n"
"Country/region code (null)\n"
"Account active Yes\n"
"Account expires 7/7/2020 12:00:00 AM\n\n"
"Password last set 6/6/2020 4:04:07 PM\n"
"Password expires 7/18/2020 4:04:07 PM\n"
"Password changeable 6/7/2020 4:04:07 PM\n"
"Password required Yes\n"
"User may change password Yes\n\n"
"Workstations allowed All\n"
"Logon script xxxx.xxxx\n"
"User profile c:\\Users\\xxxxxxxx\\Desktop\\script.ps1\n"
"Home directory c:\\Users\\xxxxxxxx\\Desktop\\script.ps1\n"
"Last logon Never\n\n"
"Logon hours allowed Sunday 8:00:00 AM - 4:00:00 PM\n"
" Monday 8:00:00 AM - 4:00:00 PM\n"
" Tuesday 8:00:00 AM - 4:00:00 PM\n"
" Wednesday 8:00:00 AM - 4:00:00 PM\n"
" Thursday 8:00:00 AM - 4:00:00 PM\n\n"
"Local Group Memberships *Access Control Assist*Administrators \n"
" *Allowed RODC Password*Cert Publishers \n"
"Global Group memberships *Domain Users \n"
"The command completed successfully. \n")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# 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