python的正则表达式为Re模块。其中split()方法是用于进行字符串分割。
先上语法规范:
str.split(str="", num=string.count(str))
然后来个例子示例一下:
import re
mystr='www.csdn.com'
print mystr
print re.split('.',mystr)
看看结果
www.csdn.com
['', '', '', '', '', '', '', '', '', '', '', '', '']
why?因为点.是匹配除了换行符以外的任意字符。所以加个斜杠转义一下就可以了
import re
mystr='www.csdn.com'
print mystr
print re.split('\.',mystr)
再看看结果:
www.csdn.com
['www', 'csdn', 'com']
嗯。正常了。
然后可以从结果看出来,split()函数分割出来的结果其实是一个列表。那么要获取结果,就可以通过对列表的操作即可
比如我要获取“csdn”这个字符串,我其他都不要
那就这样写:
import re
mystr='www.csdn.com'
print mystr
my=re.split('\.',mystr)
print my[1]
看看结果:
www.csdn.com
csdn
嗯。那就对了。
如果字符串中找不到分割的字符,那么输出的结果就是完整的字符串
我们可以把上例中的点改为其他试试看
import re
mystr='www.csdn.com'
print re.split('\,',mystr)
现在我们再看看结果
['www.csdn.com']
所以从这个示例中,可以知道找不到分割点,输出的将是整个字符串
然后实战一下吧
某个人给了我一个txt文件,里面主要有三部分,url,请求方式和响应码,这三种方式用,号分割,很有规律。但是数据量炒鸡多有一万多条。学了split()的方法就很简单了。以逗号作为分割点,其他就很容易了。
http://192.168.23.190/js/js.js,get,200
上代码:
# coding=utf-8
import re
#这里改为与你的文件名字一致
f=open('test.txt','rb+')
line=f.readlines()
f1=open('url.txt','a+')
for i in range(0,len(line)):
url=re.split(',',line[i])
if i==len(line)-1:
f1.write(url[0])
else:
f1.write(url[0]+",")
print u"完成分离第%s个url"%i
f.close()
f1.close()
print u"完成"
快来试试吧