我试图使用正则表达式来匹配与函数对应的某些字符串组。现在看起来像这样:匹配所有内部圆括号但不是外部
(Spreadsheet.[^)\)]+\))
它在哪里找到变量Spreadsheet,它具有作为属性的功能。表达式继续前进直到到达结束圆括号。对于简单的功能,如
Spreadsheet.ADD(1,2)
正则表达式将正常工作。
但是,如果我尝试进行任何类型的嵌套,则表达式不起作用,因为它将停止在内部圆括号而不是最后一个圆括号。
Spreadsheet.ADD(Spreadsheet.ADD(1, 2), 3)
因此,“,3)”未被识别并且结束被忽略。当然,由于我的代码处理它的方式,这个不寻常的字符串最终导致错误。
有没有人有更多的正则表达知识知道如何改变它只会停在最后一个括号而不是第一个?
谢谢。
这不是一个重复,至少不是我可以告诉你发布的问题。 我不想多次匹配我的表情。我想匹配我的表达从开始括号到结束括号,而不管内部有多少个括号。 –
'Spreadsheet.ADD(1,2)+ Spreadsheet.ADD(3,4)'? – falsetru
部分输入由用户指定。另外,这些功能不仅仅是算术。嵌套是我想要的东西。 –