I am unable to find pattern for last line since it has sub parenthesis ()
. I am trying to fetch all values between first (
before (array['something']
and respective closing parenthesis )
Sample Data Set
((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)))
Below is the regex i am trying:
r"(?s)\(\s*array\['\w+'\]\s*<@\s*type_list .*?\)"
But last sample record is giving match like below:
( array['x_type'] <@ type_list AND NOT array['2.1T 44QAW SN (645222)
Expected output for last row:
( array['x_type'] <@ type_list AND NOT array['2.1T 44QAW SN (645222) or (124T)'] <@ value_list)
Except for last row, rest all records are matching as expected since they dont have sub parenthesis in between.