string str="dafadf[$A>1$]dfadfadfadfadfadfadfadfad[$A>2$]dfadf";
现在要提取出[$A>1$]和[$A>2$] 中间的内容,怎么取???
用这个:\[\$[^\$\]]+\$\].*\[\$[^\$\]]+\$\] 取得的是:[$A>1$]dfadfadfadfadfadfadfadfad[$A>2$]
但中间的怎么单独去出来???请教了!
分组就可以啊
string str="dafadf[$A>1$]dfadfadfadfadfadfadfadfad[$A>2$]dfadf";
var m=Regex.Match(str,@"\[\$[^\$\]]+\$\](.*)\[\$[^\$\]]+\$\]");
string out=m.Group[1].Value;
楼上正解
正则这样写
第一种:@"(?<=\[\$A>1\$\]).*(?=\[\$A>2\$\])"
第二种:@"(?<=\[\$A>1\$\])((?!\[\$A>2\$\]).)*"
注意,这里(?<=exp)和(?=)意思是取表达式后面的匹配及前面的匹配
(?<=\[\$A>1\$\])((?!\[\$A>2\$\]).)*
(?=exp) | 匹配exp前面的位置 | |
(?<=exp) | 匹配exp后面的位置 |