0

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.

ankitpandey
  • 339
  • 1
  • 7
  • 23

0 Answers0