日期:2014-05-19  浏览次数:21060 次

正则表达式怎样判断连接中是否有.rar等
我要判断 <a   href= "????.rar "> </a>   里面是否有.rar   或zip等等,怎么写?

------解决方案--------------------
这个要看你在什么环境下使用,要实现什么功能,要求不同,写出的正则和所使用的方法是不同的

如果是在程序里使用,这样
string yourStr = ...................;
if (Regex.IsMatch(yourStr, @ " <a[^> ]*\.(rar|zip)\b[^> ]*> ", RegexOptions.IgnoreCase))
{
MessageBox.Show( "包含 ");
}
else
{
MessageBox.Show( "不包含 ");
}
------解决方案--------------------
string strContent= " <a href= "????.rar "> </a> ";
if (strContent.Contains( ".rar "))
{
}

明确一个词,根本不用正则表达式出手。
------解决方案--------------------
根据楼上高手的指引
可以这样实现(如果你不会写正则表达式的话):
if (yourStr.EndsWith( ".zip ",true,null) || yourStr.EndsWith( ".rar ",true,null))
{
MessageBox.Show( "包含 ");
}
else
{
MessageBox.Show( "不包含 ");
}
------解决方案--------------------
如果是从整个字符串来判断,当然是没必要用正则,如果是判断 <a...> 标签内是否包含,还是用正则来做好一点,考虑到imwjb所说的情况,如果只是以.rar或者.zip为扩展名才算,那这样

string yourStr = ...................;
if (Regex.IsMatch(yourStr, @ " <a[^> ]*\.(rar|zip)\b(?![\w.])[^> ]*> ", RegexOptions.IgnoreCase))
{
MessageBox.Show( "包含 ");
}
else
{
MessageBox.Show( "不包含 ");
}