javascript - 正则表达式匹配最里层括号的内容

查看:114
本文介绍了javascript - 正则表达式匹配最里层括号的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

现在有一个字符串:

str1 = '(subject_id = "A" OR (status_id = "Open" AND (status_id = "C" OR level_id = "D")))'

或者

str2 = '(subject_id = "A" OR subject_id = "Food" OR (subject_id = "C" OR (status_id = "Open" AND (status_id = "C" OR (level_id = "D" AND subject_id = "(Cat)")))))'

我需要通过正则,匹配字符串中最里层的括号及其中的内容(不匹配引号内的括号),即:

str1 => (status_id = "C" OR level_id = "D")

str2 => (level_id = "D" AND subject_id = "(Cat)")

那么,这种超复杂的正则应该怎么写?

如果正则实现不了,那么JS怎么来实现?


补充,对于 str1,我找到了这样的正则可以满足匹配:

\([^()]+\)

但是对于str2, 依然没有办法,期待大家解答!

解决方案

对于str2,我找到了这样的

\([^()]*\"[^"]*\"[^()]*\)

这篇关于javascript - 正则表达式匹配最里层括号的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆