python 正则找到规律数据

2014-11-14 11:47:22 +08:00
 fortunezhang
字符串: <Data>1=1&2=2</Data><Data>abc</Data><Data>nihao</Data>
我想找到得到的是['1=1&2=2','abc','nihao']
请各位帮忙解答一下,本人python菜鸟,勿喷,谢谢。
3649 次点击
所在节点    Python
6 条回复
c
2014-11-14 11:54:00 +08:00
re.findall('<Data>([^<]+)</Data>', s)
Kai
2014-11-14 12:19:56 +08:00
移动到 /go/python
ChanneW
2014-11-14 12:43:25 +08:00
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>'))
uJohnny
2014-11-14 15:45:15 +08:00
如果只是标签里的数据, 用lxml吧.
不想用的话, 就参考下这个: http://bit.ly/1qHjIeV
fortunezhang
2014-11-14 17:46:23 +08:00
@Kai 不知道怎么移动了。下次注意。thx
irosyking
2014-11-15 00:09:55 +08:00
正则表达式为 (?<=<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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/146443

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX