regex - 左括号和右括号之间的值
问题描述
我无法找到最后一行的模式,因为它有子括号()
。我正在尝试获取 first (
before(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)
除了最后一行,其余所有记录都按预期匹配,因为它们之间没有子括号。
解决方案
推荐阅读
- uwp - UWP ContentControl 未在其内容中显示空格
- c++ - 为什么取消引用在 C/C++ 的这个 while 循环中只发生一次?
- javascript - 未捕获的 DOMException:无法在“HTMLCanvasElement”上执行“toDataURL”:可能无法导出受污染的画布
- c# - WPF 在 ViewModel 中不执行按钮的绑定命令
- excel - 字符串作为 VBA 中单元格的函数
- testing - Mockito:无法将数据添加到流中;当我调用流接收器函数时,它会在 null 上引发函数调用
- android - 如何在Android中制作气泡指向下方的气泡布局?
- azure-sql-database - 多环境 Azure 功能
- r - 为什么ggplot说x,y的长度不同?
- elasticsearch - 我可以将 Kibana UI 用于客户端吗?它是开源的吗?