zoukankan
html css js c++ java
用 C# 分析 URL 中的参数信息
using
System;
using
System.Collections.Specialized;
using
System.Text.RegularExpressions;
namespace
UrlParse
{
/**/
///
<summary>
///
分析 url 字符串中的参数信息
///
</summary>
class
Class1
{
/**/
///
<summary>
///
应用程序的主入口点。
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
string
url
=
"
http://www.xxx.com/xyz/hello.asp?a=3&typeId=45&cc=ILoveYou
"
;
NameValueCollection nvc;
string
baseUrl;
ParseUrl(url,
out
baseUrl,
out
nvc);
//
output results
Console.WriteLine(
"
baseUrl: {0}
"
, baseUrl);
Console.WriteLine(
"
parameters:
"
);
for
(
int
i
=
0
; i
<
nvc.Count; i
++
)
Console.WriteLine(
"
{0}, {1}
"
, nvc.Keys[i], nvc[i]);
Console.ReadLine();
}
/**/
///
<summary>
///
分析 url 字符串中的参数信息
///
</summary>
///
<param name="url">
输入的 URL
</param>
///
<param name="baseUrl">
输出 URL 的基础部分
</param>
///
<param name="nvc">
输出分析后得到的 (参数名,参数值) 的集合
</param>
///
<author>
木野狐(Neil Chen)
</author>
///
<date>
2005-06-23
</date>
static
void
ParseUrl(
string
url,
out
string
baseUrl,
out
NameValueCollection nvc)
{
if
(url
==
null
)
throw
new
ArgumentNullException(
"
url
"
);
nvc
=
new
NameValueCollection();
baseUrl
=
""
;
if
(url
==
""
)
return
;
int
questionMarkIndex
=
url.IndexOf(
'
?
'
);
if
(questionMarkIndex
==
-
1
)
{
baseUrl
=
url;
return
;
}
baseUrl
=
url.Substring(
0
, questionMarkIndex);
if
(questionMarkIndex
==
url.Length
-
1
)
return
;
string
ps
=
url.Substring(questionMarkIndex
+
1
);
//
开始分析参数对
Regex re
=
new
Regex(
@"
(^|&)?(\w+)=([^&]+)(&|$)?
"
, RegexOptions.Compiled);
MatchCollection mc
=
re.Matches(ps);
foreach
(Match m
in
mc)
{
nvc.Add(m.Result(
"
$2
"
), m.Result(
"
$3
"
));
}
}
}
}
查看全文
相关阅读:
Android之剑法初略:dalvik vm和jvm比较
人民币阿拉伯数字转换为汉字大写 code
数据库定时备份方案及实践
[postfix]添加黑名单
[php][随机数]曲线式的随机
记公司服务器维护经历
批量修改符号链接实现思路
复杂数组的签名生成方法
[已解决]ubuntu下chrome和firefox输入框内无法快捷键全选
[已解决]centos6.4 php连接mysql和memcache提示权限不允许
原文地址:https://www.cnblogs.com/RChen/p/179627.html
最新文章
df空间满,du找不到文件的问题
linux 3.10内核 xfs的一次io异常导致的hung crash
netfilter的笔记3--那些内置的表
[C#]基础——注意事项
【T-SQL】基础——表别名
【T-SQL】基础——操作
【T-SQL】基础 —— 语法(1)
webpack入门
C/C++(C++返回对象与应用区别,类成员的存储)
C/C++(C++拷贝构造器,赋值运算符重载)
热门文章
js数组中foEach和map的用法详解 jq中的$.each和$.map
C/C++(C++类与对象)
C/C++(C++封装)
C/C++(C++内存管理,内联函数,类型转换,命名空间,string类)
C/C++(C++重载,默认参数,引用)
C/C++(C++类型增强)
C/C++(预处理)
Android之独孤口诀:Message(短信) to Lover
Android之独孤口诀:处女之作"拨号器"
Android之独孤口诀:模拟器创建及adb(android debug bridge安卓调试桥)
Copyright © 2011-2022 走看看