首先:您应该选择一个更好的串行输出,因为在这种情况下,字符串处理非常的dangeroues,而且也没有您希望的那么有效。在
但是,我为您的问题做了一些regex捕获,这些都是列表,但是我想从那里,您可以决定如何访问,以及要访问哪些字符串数据,并且您可以始终在末尾执行','.join()操作,以便用逗号连接列表中的项。。在
但正如我上面提到的,我不建议您使用此解决方案,您应该从源中获取不同的数据。。在import re
string = 'Apr 22 11:52:28 siem <159>Apr 22 11:55:26 10.1.1.10 LEEF:1.0|Websense|Security|7.7.3|transaction:permitted|sev=1 cat=9 usrName=LDAP://10.10.10.10 OU=Standard Users,OU=Users,OU=Frostbyte Falls,OU=Frostbyte - QSD,OU=CDG,OU=North America,DC=Global,DC=bullwinke,DC=com/Mr. Moose src=10.1.10.10 srcPort=62133 srcBytes=233 dstBytes=39469 dst=165.254.42.233 dstPort=80 proxyStatus-code=200 serverStatus-code=304 duration=0 method=GET disposition=1048 contentType=application/zip reason=- policy=role-8**US Frostbyte role=8 userAgent=IPM url=http://acroipm.adobe.com/10/rdr/ENU/win/nooem/none/message.zip'
dates = re.findall(r'(\w+)\s(\d+)\s(\d+:\d+:\d+)\s', string)
ip = re.findall(r'\d+\.\d+\.\d+\.\d+', string)
url = re.findall(r'url=.*(?!\s)', string)
dstport = re.findall(r'dstPort=(\d+)', string)
srcport = re.findall(r'srcPort=(\d+)', string)
method = re.findall(r'method=(\w+)\s', string)
user = re.findall(r'DC=com/(.*)\ssrc=', string)
print dates, ip, url, dstport, srcport, method, user