在字符串 Python 中查找多个标记的字符串
Find Multiple Flagged String within String Python
我有多个标记的字符串:
FLGSTdata1FLGEN
FLGSTdata2FLGEN
...
其中 FLGST
是开始标志,FLGEN
是结束标志。
我组合了这些字符串并添加了一些垃圾数据,所以它看起来像这样:
garbagegarbageFLGSTdata1FLGENFLGSTdata2FLGENgarbagegarbageFLGSTdata3FLGEN...
我需要从组合字符串中获取每个标记的字符串。
这是我使用 re
所做的:
>>> pattern = r'5354([A-Za-z0-9_]*)454E' #FLGST = 5354 and FLGEN = 454E
>>> data = re.findall(pattern,stringWithGarbage)
>>> print data[0]
data1FLGENFLGSTdata2FLGENgarbagegarbageFLGSTdata3
它return除了data1的FLGST
和data最后的FLGEN
之外的所有数据。
那么,如何从 stringWithGarbage 中获取每个标记的字符串?
合适的return应该是:
[data1, data2, data3, ...]
积极回顾过去,积极展望未来
strg = "garbagegarbageFLGSTdata1FLGENFLGSTdata2FLGENgarbagegarbageFLGSTdata3FLGEN"
pattern = re.compile(r'(?<=FLGST)(\S*?)(?=FLGEN)')
re.findall(pattern, strg)
输出
['data1', 'data2', 'data3']
我有多个标记的字符串:
FLGSTdata1FLGEN
FLGSTdata2FLGEN
...
其中 FLGST
是开始标志,FLGEN
是结束标志。
我组合了这些字符串并添加了一些垃圾数据,所以它看起来像这样:
garbagegarbageFLGSTdata1FLGENFLGSTdata2FLGENgarbagegarbageFLGSTdata3FLGEN...
我需要从组合字符串中获取每个标记的字符串。
这是我使用 re
所做的:
>>> pattern = r'5354([A-Za-z0-9_]*)454E' #FLGST = 5354 and FLGEN = 454E
>>> data = re.findall(pattern,stringWithGarbage)
>>> print data[0]
data1FLGENFLGSTdata2FLGENgarbagegarbageFLGSTdata3
它return除了data1的FLGST
和data最后的FLGEN
之外的所有数据。
那么,如何从 stringWithGarbage 中获取每个标记的字符串?
合适的return应该是:
[data1, data2, data3, ...]
积极回顾过去,积极展望未来
strg = "garbagegarbageFLGSTdata1FLGENFLGSTdata2FLGENgarbagegarbageFLGSTdata3FLGEN"
pattern = re.compile(r'(?<=FLGST)(\S*?)(?=FLGEN)')
re.findall(pattern, strg)
输出
['data1', 'data2', 'data3']