创建适用于多种字符串和字符长度的正则表达式

时间:2015-10-31 01:08:29

标签: python regex

PLAY [[B2 C3# D3 D3# ]]
PLAY [[A1 A1# B1 D1# E1 F1 F1# G1 A2 B2 F2# G2 C3 C3# D3 D3# ]]

我需要创建一个正则表达式(最终目的是从文本文件的所有行中删除“PLAY”和“[[]]”。括号的内部将随每行而变化,因此如何创建一个正则表达式匹配模式,只返回每行括号内的组?

任何帮助都表示赞赏,我对此非常喜欢。

2 个答案:

答案 0 :(得分:5)

由于您知道开始和结束字符串及其长度,因此只需切片所需的部分:

>>> s = "PLAY [[A1 A1# B1 D1# E1 F1 F1# G1 A2 B2 F2# G2 C3 C3# D3 D3# ]]"
>>> s[7:-3]
'A1 A1# B1 D1# E1 F1 F1# G1 A2 B2 F2# G2 C3 C3# D3 D3#'

答案 1 :(得分:1)

使用re.sub

for line in file_obj:
    print re.sub(r'.*\bPLAY\s*\[\[(.*?)\]\].*', r'\1', line)
相关问题