import re
regex = re.compile(r"^(?P<KEY>[^=#\s]+)=(?P<VALUE>.*)$", flags=re.MULTILINE)
test_str = ("app=tcp/444\n"
"# Catchs only Key:app Value:tcp > should catch Key:app Value:tcp/444 \n\n"
"catdt=Network-based \n"
"# Current result: \n"
"# catdt:'Network'\n"
"# \n"
"# Shoud be:\n"
"# catdt:'Network-based' \n\n"
"eventId=123123 externalId=11111\n"
"# Current result:\n"
"# eventId:'123123 externalId=11111'\n"
"#\n"
"# Should catch\n"
"# eventId: '123123'\n"
"# externalId: '111111'\n\n"
"src=2.3.4.5\n"
"# Current result:\n"
"# src:'2'\n"
"#\n"
"# Should catch\n"
"# src: '2.3.4.5'\n\n"
"eventAnnotationEndTime=1493293598\\=aaa00\n"
"# Should be:\n"
"# eventAnnotationEndTime: '1493293598\\=aaa00'\n\n"
"eventAnnotationEndTimeA=1493293598A\\=aaa01 \n"
"eventAnnotationEndTimeB=1493293598\\=aaa02\n"
"# Should be:\n"
"# eventAnnotationEndTimeA: '1493293598\\=aaa01'\n"
"# eventAnnotationEndTimeB: '1493293598\\=aaa02'\n\n\n"
"sourceTranslatedZoneURI=/All Zones/ArcSight System/Private Address Space Zones/RFC1918: 172.3.0.0-172.3.255.255\n"
"# Should be:\n"
"# ourceTranslatedZoneURI: '/All Zones/ArcSight System'")
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