日期:2014-05-18  浏览次数:20459 次

Regex简单问题.
匹配某些类型文件扩展名.   比如:
string   str   =   "*.doc;*.ppt;*.rar;*.hdr;   *.ex_;   *.bin;   *.exe;   *.ini;   *.inx;   *.cab ";

要求用str作为参数生成一个Regex   regEx2   =   new   Regex对象.
具体怎么写?



------解决方案--------------------
sf


------解决方案--------------------
可以用indexof()遍历.
------解决方案--------------------
学习
------解决方案--------------------
[.](doc|ppt)
后面的自己加上
-----------------------
CSDN 论坛助手
http://china-csdn.cn
------解决方案--------------------
.(jpg|bmp|txt)^

还要设置匹配大小写
------解决方案--------------------
或者楼主是不是想要这样一个效果

string yourStr = ............;
string str = "*.doc;*.ppt;*.rar;*.hdr; *.ex_; *.bin; *.exe; *.ini; *.inx; *.cab ";
string str2 = @ "^.*\.( " + Regex.Replace(str, @ ";?\s*\*\. ", "| ") + ")$ ";
Regex regEx2 = new Regex(str2);
if (regEx2.IsMatch(yourStr))
{
MessageBox.Show( "符合 ");
}
else
{
MessageBox.Show( "不符合 ");
}

输入:abc.doc  输出:符合
输入:E:\abc\def.bin  输出:符合
输入:cxz.jpg  输出:不符合
即检查扩展名是否包含在str所列扩展名中
------解决方案--------------------
楼上的是正则专家,不用看也知道是正解,哈哈
------解决方案--------------------
学习