首页 新闻 会员 周边

正则表达式问题,提取字符串,急!!!!

0
悬赏园豆:30 [已解决问题] 解决于 2009-07-20 16:06

string str="dafadf[$A>1$]dfadfadfadfadfadfadfadfad[$A>2$]dfadf";

现在要提取出[$A>1$]和[$A>2$] 中间的内容,怎么取???

 用这个:\[\$[^\$\]]+\$\].*\[\$[^\$\]]+\$\] 取得的是:[$A>1$]dfadfadfadfadfadfadfadfad[$A>2$]

但中间的怎么单独去出来???请教了!

hypo.xu的主页 hypo.xu | 初学一级 | 园豆:40
提问于:2009-07-02 14:06
< >
分享
最佳答案
0

分组就可以啊

string str="dafadf[$A>1$]dfadfadfadfadfadfadfadfad[$A>2$]dfadf";

var m=Regex.Match(str,@"\[\$[^\$\]]+\$\](.*)\[\$[^\$\]]+\$\]");

string out=m.Group[1].Value;

斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-07-02 14:48
其他回答(2)
0

楼上正解

Funeral | 园豆:175 (初学一级) | 2009-07-02 16:34
0

正则这样写

第一种:@"(?<=\[\$A>1\$\]).*(?=\[\$A>2\$\])"

第二种:@"(?<=\[\$A>1\$\])((?!\[\$A>2\$\]).)*"

注意,这里(?<=exp)和(?=)意思是取表达式后面的匹配及前面的匹配

(?<=\[\$A>1\$\])((?!\[\$A>2\$\]).)*

  (?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置

chen eric | 园豆:4 (初学一级) | 2009-07-03 14:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册