开闭括号之间的值

时间:2018-07-18 06:46:03

标签: regex

我找不到最后一行的模式,因为它的子括号为()。我正在尝试获取(之前的第一个(array['something']和相应的右括号)

之间的所有值

样本数据集

((array['ky'] <@ type_list AND array['Deviceless4D'] <@ value_list)))))

(array['snm'] <@ type_list AND (array['RAQ'] <@ value_list OR array['QQWYR'] <@ value_list)) AND ( array['snm'] <@ type_list AND NOT array['AQ'] <@ value_list)))

( array['ky'] <@ type_list AND NOT array['ASIR'] <@ value_list)))

( array['type_q'] <@ type_list AND NOT array['1.0Q 22QW_%_Driver'] <@ value_list))

(array['snm'] <@ type_list AND (array['HM'] <@ value_list OR array['UA'] <@ value_list OR array['R'] <@ value_list OR array['W'] <@ value_list)) AND ( array['revision'] <@ type_list AND NOT array['SQ1.1'] <@ value_list)))

( array['x_type'] <@ type_list AND NOT array['2.1T 44QAW SN (645222) or (124T)'] <@ value_list)))

下面是我正在尝试的正则表达式:

r"(?s)\(\s*array\['\w+'\]\s*<@\s*type_list .*?\)"

但是最后一个样本记录给出的匹配如下:

( array['x_type'] <@ type_list AND NOT array['2.1T 44QAW SN (645222)

最后一行的预期输出:

( array['x_type'] <@ type_list AND NOT array['2.1T 44QAW SN (645222) or (124T)'] <@ value_list)

除了最后一行,其余所有记录均符合预期,因为它们之间没有子括号。

0 个答案:

没有答案
相关问题