PLAY [[B2 C3# D3 D3# ]]
PLAY [[A1 A1# B1 D1# E1 F1 F1# G1 A2 B2 F2# G2 C3 C3# D3 D3# ]]
我需要创建一个正则表达式(最终目的是从文本文件的所有行中删除“PLAY”和“[[]]”。括号的内部将随每行而变化,因此如何创建一个正则表达式匹配模式,只返回每行括号内的组?
任何帮助都表示赞赏,我对此非常喜欢。
答案 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)