C#域名操作,正则匹配域名
来源:互联网 发布:android游戏3d程序员 编辑:程序博客网 时间:2024/05/19 13:13
一、判断一个字符串是否是域名
/// <summary>/// 验证字符串是否是域名/// </summary>/// <param name="str">指定字符串</param>/// <returns></returns>public static bool IsDomain(string str){ string pattern = @"^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$"; return IsMatch(pattern, str);}/// <summary>/// 判断一个字符串,是否匹配指定的表达式(区分大小写的情况下)/// </summary>/// <param name="expression">正则表达式</param>/// <param name="str">要匹配的字符串</param>/// <returns></returns>public static bool IsMatch(string expression, string str){ Regex reg = new Regex(expression); if (string.IsNullOrEmpty(str)) return false; return reg.IsMatch(str);}实例验证:
/// <summary>/// 说明,目前不支持中文域名/// </summary>public static void TestOne(){ Console.WriteLine(RegexHelper.IsDomain("baidu.com"));//true Console.WriteLine(RegexHelper.IsDomain("m.baidu.com"));//true Console.WriteLine(RegexHelper.IsDomain("m.bj.baidu.com"));//true Console.WriteLine(RegexHelper.IsDomain("baidu.com."));//false Console.WriteLine(RegexHelper.IsDomain("m.baidu.com.cn"));//true Console.WriteLine(RegexHelper.IsDomain("m.百度.com"));//false}
二、匹配字符串中的域名:
/// <summary>/// 匹配获取字符串中所有的域名/// </summary>/// <param name="input"></param>/// <returns></returns>public static List<string> MatchsDomain(string input){ string pattern = @"[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+"; return Matchs(input, pattern);}/// <summary>/// 匹配结果 返回匹配结果的数组/// </summary>/// <param name="input"></param>/// <param name="expression"></param>/// <returns></returns>public static List<string> Matchs(string input, string expression){ List<string> list = new List<string>(); MatchCollection collection = Regex.Matches(input, expression, RegexOptions.IgnoreCase | RegexOptions.Multiline); foreach (Match item in collection) { if (item.Success) { list.Add(item.Value); } } return list;}验证实例:
public static void TestTwo(){ string source = "123.com zhidao.123.com www.123.com/q?ct=17&pn=0&tn zhidao.123.com/q?ct=17&pn=0&tn 123.com/q?ct=17&pn=0&tn 要求匹配出123.com 或者有可能是这样的有不是顶级域名的 www.123.com.cn zhidao.123.com.cn www.123.co..."; List<string> list = RegexHelper.MatchsDomain(source); foreach (var item in list) { Console.WriteLine(item); }}
更多参考:http://blog.163.com/m13864039250_1/blog/static/21386524820161049745479/
C# 常见Url操作实例(一)、正则表达式匹配URl
0 0
- C#域名操作,正则匹配域名
- 匹配域名正则
- 根域名匹配正则
- 正则表达式匹配域名
- 匹配域名的正则表达式
- 正则表达式-匹配IP、域名
- 匹配IP字串、域名的正则表达式
- 匹配IP字串、域名的正则表达式
- 匹配IP字串、域名的正则表达式
- 匹配IP字串、域名的正则表达式
- 匹配IP字串、域名的正则表达式
- 匹配IP字串、域名的正则表达式
- 匹配顶级域名的正则表达式
- [Regex ]正则表达式匹配ip和域名
- 匹配IP字串、域名的正则表达式
- C++ regex 正则表达式 匹配IP 域名
- 匹配IP字串、域名的正则表达式
- C++ regex 正则表达式 匹配IP 域名
- Bash shell中的位置参数$#,$*,$@,$0,$1,$2...及特殊参数$?,$-等的含义
- linux设置环境变量
- Android dex文件结构及其应用
- 面试题记2016-11-04
- C++ ofstream和ifstream详细用法
- C#域名操作,正则匹配域名
- Unity手游之路<十二>手游资源热更新策略探讨
- Android 打造任意层级树形控件 考验你的数据结构和设计
- cpp 4.19
- java多线程处理导入数据拆分List集合,同步处理插入数据
- 奇葩属性:layout_weight 的解释及使用
- Who calls _tmain or _tWinMain?
- java客户端调用C#webservice服务相关问题
- js登录名校验