查找以'&'为界的文字。符号

时间:2014-09-17 14:35:50

标签: python regex

实施例

x='RTRV:&PM_DICT[&PM_LIST&:&PM_LIST&]&'

将生成如下数据的正则表达式是什么?

PM_DICT[
PM_LIST
PM_LIST
]

“&”内的所有文字符号。

2 个答案:

答案 0 :(得分:2)

x='RTRV:&PM_DICT[&PM_LIST&:&PM_LIST&]&'
>>> x.split("&")[1:]
['PM_DICT[', 'PM_LIST', ':', 'PM_LIST', ']', '']

或删除空项目

>>> filter(lambda i: len(i) > 0, x.split("&")[1:])
['PM_DICT[', 'PM_LIST', ':', 'PM_LIST', ']']

你的问题中神秘地遗漏了:。它去了哪里?进入filter或许?

>>> forbidden_items = set(["", ":", "RTRV:"])
>>> filter(lambda i: i not in forbidden_items, x.split("&"))
['PM_DICT[', 'PM_LIST', 'PM_LIST', ']']

答案 1 :(得分:0)

>>> x
'RTRV:&PM_DICT[&PM_LIST&:&PM_LIST&]&'
>>> re.split('&',x)[1:]
['PM_DICT[', 'PM_LIST', ':', 'PM_LIST', ']', '']
>>> x.split('&')[1:]
['PM_DICT[', 'PM_LIST', ':', 'PM_LIST', ']', '']