字符串: <Data>1=1&2=2</Data><Data>abc</Data><Data>nihao</Data>
我想找到得到的是['1=1&2=2','abc','nihao']
请各位帮忙解答一下,本人python菜鸟,勿喷,谢谢。
我想找到得到的是['1=1&2=2','abc','nihao']
请各位帮忙解答一下,本人python菜鸟,勿喷,谢谢。
1
c Nov 14, 2014 re.findall('<Data>([^<]+)</Data>', s)
|
2
Kai Nov 14, 2014 via iPhone 移动到 /go/python
|
3
ChanneW Nov 14, 2014
def tsplit(string, delimiters):
"""Behaves str.split but supports multiple delimiters.""" delimiters = tuple(delimiters) stack = [string,] for delimiter in delimiters: for i, substring in enumerate(stack): substack = substring.split(delimiter) stack.pop(i) for j, _substring in enumerate(substack): stack.insert(i+j, _substring) return stack s ="<Data>1=1&2=2</Data><Data>abc</Data><Data>nihao</Data>" tsplit(s, (',', '<Data>', '</Data>')) |
4
uJohnny Nov 14, 2014
如果只是标签里的数据, 用lxml吧.
不想用的话, 就参考下这个: http://bit.ly/1qHjIeV |
5
fortunezhang OP @Kai 不知道怎么移动了。下次注意。thx
|
6
irosyking Nov 15, 2014
正则表达式为 (?<=<data>)(.*?)(?=<\/data>)
import re m=re.findall(r'(?<=<data>)(.*?)(?=<\/data>)','<Data>1=1&2=2</Data><Data>abc</Data><Data>nihao</Data>',re.I|re.M) print m |