正则表达式提取Url中QueryString键值(搜索关键字的提取)
来源:互联网 发布:怎么样购买域名 编辑:程序博客网 时间:2024/04/29 15:20
起始:流量统计系统中衍生的小功能
目的:提取Url中Querystring指定键的值
BETA: (?<=key\=).*?(?=\&|$)
加强: (?<=(\&|\?|^)key\=).*?(?=\&|$)
示例代码:
示例代码 private const string _regexSEQuery = @"(?<=(\&|\?|^)({0})\=).*?(?=\&|$)";/// <summary>/// 查找关键字/// <remarks>更多访问http://www.cnblogs.com/ronli/</remarks>/// <param name="querykey">多个QueryKey按优先顺序用'|'分隔</param>/// </summary>private string RegexMatch(string input, string querykey, RegexOptions options){ return Regex.Match(input, string.Format(_regexSEQuery, querykey), options).Value.Trim();}/// <summary>/// 复合查找关键字/// <remarks>更多访问http://www.cnblogs.com/ronli/</remarks>/// <param name="querykey">多个QueryKey按优先顺序用'&'(连接)或'|'(短路)分隔</param>/// </summary>private string RegexMatches(string input, string querykey, RegexOptions options){ string value = ""; string[] orKeys = querykey.Split('|'); string[] andKeys; foreach (string or in orKeys) { andKeys = or.Split('&'); foreach (string and in andKeys) { value += (RegexMatch(input, and, options) + " "); } if (value != "") break; } return value.Trim();}
实际应用:
提取搜索引擎的搜索关键字。
应用代码:
应用代码 /// <summary>/// 复合查找关键字/// <summary> /// <remarks>更多访问http://www.cnblogs.com/ronli/</remarks>private string GetSEQuery(HttpContext context){ //搜索关键字 string query = ""; string queryStrings = context.Server.UrlDecode(context.Request.UrlReferrer.Query); if (visit.RefDomain.Contains("bing")) query = RegexMatch(queryStrings, "q", RegexOptions.IgnoreCase); else if (visit.RefDomain.Contains("google")) //q为空用oq代替 query = RegexMatches(queryStrings, "q|oq", RegexOptions.IgnoreCase); //同时提取q和oq(空格连接) //query = RegexMatches(queryStrings, "q&oq", RegexOptions.IgnoreCase); //提取q,若为空用aq和oq代替 //query = RegexMatches(queryStrings, "q|aq&oq", RegexOptions.IgnoreCase); else if (visit.RefDomain.Contains("baidu")) query = RegexMatch(queryStrings, "wd", RegexOptions.IgnoreCase); else if (visit.RefDomain.Contains("yahoo")) query = RegexMatch(queryStrings, "p", RegexOptions.IgnoreCase); else if (visit.RefDomain.Contains("sousou")) query = RegexMatch(queryStrings, "w", RegexOptions.IgnoreCase); else if (visit.RefDomain.Contains("ask")) query = RegexMatch(queryStrings, "q", RegexOptions.IgnoreCase); return query;}
- 正则表达式提取Url中QueryString键值(搜索关键字的提取)
- 提取文本中url的正则表达式
- 提取 URL 的正则表达式
- url正则表达式提取
- Python 正则表达式提取URL中Port
- 在文本中提取URL的正则表达式
- Java提取网页中url的正则表达式
- java正则表达式提取URL
- 【正则表达式】C#正则表达式提取HTML中IMG标签的URL地址
- 提取html中table的正则表达式
- 正则表达式提取url中的域名
- Python 正则表达式提取URL中的Scheme
- Python 正则表达式提取URL中的USER
- Python 正则表达式提取URL中的Host
- Python 正则表达式提取URL中的Path
- Python 正则表达式提取URL中的Query
- Python 正则表达式提取URL中的Fragment
- 提取字符串中的url网址 正则表达式
- 如何在 IE6 等老式浏览器中使用HTML5的新标签
- MySQL本地可以连接,远程连接不上的解决
- 2012中兴ZTE笔试题 软件题3
- LR设置返回值检查点&打印输出执行日志
- U8800+/PRO【民间2.3.5以上ROM强刷官方B572G图文教程】小白、刷机必备!
- 正则表达式提取Url中QueryString键值(搜索关键字的提取)
- DirectShow翻译
- 【android】 调用别的应用的activity
- 随机化算法(4) — 拉斯维加斯(Las Vegas)算法
- SQL语句的添加、删除、修改多种方法
- 计算机学科导论-2011级教学材料
- 七夕,你拿什么拯救你的爱人?
- Android系统移植 之 touch
- U8800 4.0升级指导书图片格式版,方便无法打开PDF的机友 [复制链接]