猿问

Python和正则表达式

我之前发布了类似的内容,因此,如果您再次遇到此问题,我深表歉意。这次,我将更加具体,为您提供直接的示例,并准确地描述我想要的内容。基本上,我需要使原始数据看起来更漂亮:


str = '2011-06-1618:53:41222.222.2.22-somedomain.hi.comfw12192.10.215.11GET/965874/index.xls22233665588-0Mozilla/4.0 (compatible; MSI 5.5; Windows NT 5.1)'--55656-0.55-5874/659874540--'




more strings:

'2011-06-2150:36:1292.249.2.105-somedomain.hi.comfw12192.10.215.11GET/965874/ten.xls22233665588-0Mozilla/4.0 (compatible; MSI 6.0; Windows NT 5.1)'--55656-0.55-5874/659874540--'

'2011-01-1650:23:45123.215.2.215-somedomain.hi.comfw12192.10.215.11GET/123458/five.xls22233665588-0Mozilla/4.0 (compatible; MSI 7.0; Windows NT 5.1)'--55656-0.55-5874/659874540--'

'2011-02-1618:16:54129.25.2.119-thisdomain.hi.comfw12192.10.215.11GET/984745/two.xls22233665588-0Mozilla/4.0 (compatible; MSI 7.0; Windows NT 5.1)'--55656-0.55-5874/659874540--'

'2011-08-0525:22:16164.32.2.111-yourdomain.hi.comfw12192.10.215.11GET/85472/one.xls22233665588-0Mozilla/4.0 (compatible; MSI 8.0; Windows NT 5.1)'--55656-0.55-5874/659874540--'

在调试器中:


import re

str = '2011-06-1618:53:41222.222.2.22-somedomain.hi.comfw12192.10.215.11GET/965874/index.xls22233665588-0Mozilla/4.0 (compatible; MSI 5.5; Windows NT 5.1)'--55656-0.55-5874/659874540--'

domain = re.compile('^.*?(?=([fw].+?))')

domain.search(str).group()

'2011-06-1618:53:41222.222.2.22-somedomain.hi.com'

domain = domain.search(str).group()

因此,要获取域,我需要删除在域名之前的破折号(-)之前的所有内容。我可以使用此RE([0-9] {3,5})寻找该值。([0-9] {1,3}。){2} [0-9] {1,3} [- ]但是我不知道怎么说,找到那个值,然后在fw12之前返回所有值。


在一天结束时,我希望这些字符串看起来像这样,使用逗号(,)作为分隔符:


2011-08-05,25:22:16,164.32.2.111,yourdomain.hi.com,GET / 85472 / one.xls,Mozilla / 4.0(compatible; MSI 8.0; Windows NT 5.1)


至尊宝的传说
浏览 131回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答