• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

[跪求]算法

曲滨_銘龘鶽 副总经理 产品总监 技术总监  2005-01-07 10:54:59
求算法
就是取 messagebox.show(<里面的内容>)
情况有很多如下:
MessageBox.Show("哈哈","提示");
取:"哈哈","提示"

MessageBox.Show(String.Format("当前时间 {0}",DateTime.Now),"提示");
取:String.Format("当前时间 {0}",DateTime.Now),"提示"

MessageBox.Show("当前时间"
+ DateTime.Now.ToString(),"提示");
取:"当前时间"
+ DateTime.Now.ToString(),"提示"

MessageBox.Show("当前读取纪录:" +
dt.Rows.Count.ToString()+
String.Format("当前时间 {0}",DateTime.Now) ,"提示");
取:"当前读取纪录:" +
dt.Rows.Count.ToString()+
String.Format("当前时间 {0}",DateTime.Now) ,"提示"

用正则表达式 试验了很久也没搞定,求各位朋友帮忙求个算法,先谢谢了
...全文
215 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
曲滨_銘龘鶽 2005-01-24
这回还查不多,下面的贴有 400 分那等你去拿。
太晚了、明天验证好使不看看。

http://community.csdn.net/Expert/TopicView.asp?id=3750800
http://community.csdn.net/Expert/TopicView.asp?id=3341708
回复
cnhgj 2005-01-24
string str = richTextBox1.Text;
string pattern = @"MessageBox.Show\((?<content>[\s\S]*?)\);";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
foreach(System.Text.RegularExpressions.Match m in regex.Matches(str))
MessageBox.Show(m.Groups["content"].Value);
回复
yufenfeila 2005-01-24
大哥你这问题还没解决……100分真不好拿,呵呵
可以最小匹配,修改了一下:

string str = textBox1.Text;
string pattern = @"MessageBox.Show\(((.|\n)*?)\);";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
str = regex.Replace(str, "$1", -1);
textBox2.Text = str;
回复
曲滨_銘龘鶽 2005-01-24
正则 能尽量向最小匹配进行匹配不?
回复
曲滨_銘龘鶽 2005-01-24
在C#里是允许这样的
MessageBox.Show("3","3");MessageBox.Show("3","3");


虽然很少但也是可能的啊!
回复
曲滨_銘龘鶽 2005-01-24
哥们你用
MessageBox.Show("3","3");MessageBox.Show("3","3");
看看
得到
"3","3");MessageBox.Show("3","3"
回复
yufenfeila 2005-01-10
楼主,我正则写的不完善,下面的是改进过的

string str = textBox1.Text;
string pattern = @"MessageBox.Show\(((.|\n)*)\);";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
str = regex.Replace(str, "$1", -1);
textBox2.Text = str;

这次的没有\[的问题了,并且多行的也可以正确处理,试试看
回复
yufenfeila 2005-01-09
我已经测试过了,应该符合你的要求
你可以开两个TextBox试试

string str = textBox1.Text;
string pattern = @"MessageBox.Show\((.[^\[]*)\);";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
str = regex.Replace(str, "$1", -1);
textBox2.Text = str;

如果有什么问题给我短信
回复
Fibona 2005-01-09
用正则表达式来进行分析,行不行?
回复
zachary7833 2005-01-09
同意楼上的
回复
曲滨_銘龘鶽 2005-01-09
string str = "MessageBox.Show(\"本次查询[3]条,耗时[13.5]毫秒\",\"提示\");";
string pattern = @"MessageBox.Show\((.[^\[]*)\);";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
str = regex.Replace( str, "$1", -1 );

哥们你怎么试验的啊 为何里面不能有 \[ 想不懂???
回复
yufenfeila 2005-01-08
string str = "MessageBox.Show(\"哈哈\",\"提示\");";
string pattern = @"MessageBox.Show\((.[^\[]*)\);";
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(pattern);
str = regex.Replace( str, "$1", -1 );
回复
石榴刺猬 2005-01-08
简单的用词法分析的方法不就可以了么?

匹配了MessageBox.Show后,然后匹配 ( 和 )
回复
心情解码 2005-01-08
兄弟不懂..

帮你顶 :)
回复
曲滨_銘龘鶽 2005-01-08
yufenfeila(雨纷飞啦) 你的方法不行啊 不润序 \ 和 [ 是什么意识?
没人答啊!
回复
Jinpanxu 2005-01-08
mark,學習
回复
sangengyi 2005-01-07
问题不清楚,看不出要什麽算法。
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2005-01-07 10:54
社区公告

让您成为最强悍的C#开发者