求一则正则表达式

zenggang999 2011-10-09 09:05:56
这几天闲着无聊,准备尝试写出一个函数求导的算法.其中遇到了如下的问题:
尝试的函数表达式:(x+56*78*(45+6)+9/(x^2+3*(x+6)))+(x^3+6)-58+(x*(x-7))现在我能否通过一个正则表达式把括号内的内容给匹配出来,如对上面的匹配结果是
1、(x+56*78*(45+6)+9/(x^2+3*(x+6)))
2、(x^3+6)
3、(x*(x-7))
也就是说如何匹配表达式里的最外面一层括号的文本(括号里如果有括号,里面的括号必须成对出现,如上面匹配出的第1个结果).
在此,不甚感激!
...全文
76 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenggang999 2011-10-09
  • 打赏
  • 举报
回复
1、非常感谢!
2、印象中以前在图书馆是看到过open这个用法,当时也没有在意.嘿嘿,很强大!
Mr-Jee 2011-10-09
  • 打赏
  • 举报
回复
平衡组的应用在这个开关括号是个比较典型的例题
看不懂的童鞋移步过客的博客
http://blog.csdn.net/lxcnn/article/details/4402808
aydf1 2011-10-09
  • 打赏
  • 举报
回复
正在学习
边城的刀声 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 q107770540 的回复:]

C# code

void Main()
{
string str = @"(x+56*78*(45+6)+9/(x^2+3*(x+6)))+(x^3+6)-58+(x*(x-7))";
foreach(Match m in Regex.Matches(str,@"\((?>[^()]+|\((?<Open>)|\)(?<-Open>))*(?(Open)(?!))\)……
[/Quote]
求注释
边城的刀声 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 q107770540 的回复:]

C# code

void Main()
{
string str = @"(x+56*78*(45+6)+9/(x^2+3*(x+6)))+(x^3+6)-58+(x*(x-7))";
foreach(Match m in Regex.Matches(str,@"\((?>[^()]+|\((?<Open>)|\)(?<-Open>))*(?(Open)(?!))\)……
[/Quote]
学习
q107770540 2011-10-09
  • 打赏
  • 举报
回复

void Main()
{
string str = @"(x+56*78*(45+6)+9/(x^2+3*(x+6)))+(x^3+6)-58+(x*(x-7))";
foreach(Match m in Regex.Matches(str,@"\((?>[^()]+|\((?<Open>)|\)(?<-Open>))*(?(Open)(?!))\)"))
{
Console.WriteLine(m.Value);
}

/*
(x+56*78*(45+6)+9/(x^2+3*(x+6)))
(x^3+6)
(x*(x-7))
*/
}


搞懂这个正则的话,你才会发现正则的真正魅力所在..
边城的刀声 2011-10-09
  • 打赏
  • 举报
回复
密切 关注

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧