c# 正则匹配多个字符串
一个长文本,需要匹配<html、<meta、xmlns、<head、<style>、<div、<body、<table,中的6个以上时通过求正则表达式...
一个长文本,需要匹配 <html 、 <meta 、 xmlns 、 <head 、 <style> 、 <div 、 <body 、 <table,
中的6个以上时通过
求正则表达式 展开
中的6个以上时通过
求正则表达式 展开
2个回答
展开全部
正则仅用来判断是否包含相应匹配规则字符串,不能用来个数判断,如果想实现你的业务需求,需要用多个正则,在正则判断的外层加入判断个数的逻辑才能完成你的需求。
public bool IsMatchMoreThan6(string inputStr)
{
List<Regex> matchList = new List<Regex>();
matchList.Add(new Regex("<html"));
matchList.Add(new Regex("<meta"));
matchList.Add(new Regex("xmlns"));
matchList.Add(new Regex("<head"));
matchList.Add(new Regex("<style>"));
matchList.Add(new Regex("<div"));
matchList.Add(new Regex("<body"));
matchList.Add(new Regex("<table"));
int donotMatchCount = 0;
//因为需要匹配6个那么只要有2个以上的没有匹配则停止继续匹配,这样判断是为了更高效
foreach (var regItem in matchList)
{
if (regItem.IsMatch(inputStr) == false)
{
donotMatchCount++;
if (donotMatchCount > 2)
{
return false;
}
}
}
return true;
}
public bool IsMatchMoreThan6(string inputStr)
{
List<Regex> matchList = new List<Regex>();
matchList.Add(new Regex("<html"));
matchList.Add(new Regex("<meta"));
matchList.Add(new Regex("xmlns"));
matchList.Add(new Regex("<head"));
matchList.Add(new Regex("<style>"));
matchList.Add(new Regex("<div"));
matchList.Add(new Regex("<body"));
matchList.Add(new Regex("<table"));
int donotMatchCount = 0;
//因为需要匹配6个那么只要有2个以上的没有匹配则停止继续匹配,这样判断是为了更高效
foreach (var regItem in matchList)
{
if (regItem.IsMatch(inputStr) == false)
{
donotMatchCount++;
if (donotMatchCount > 2)
{
return false;
}
}
}
return true;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询