首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

高分正则表达式的写法

2012-01-26 
高分求一个正则表达式的写法。下面是google的一个搜索链接,我想用正则表达式匹配出关键词,就是以“q”开头,

高分求一个正则表达式的写法。
下面是google的一个搜索链接,我想用正则表达式匹配出关键词,就是以“q=”开头,以“&”结束的那部分文字,还要考虑后面没有“&”的情况。
我是这样写的:q=(.*)&,但是匹配出这个字符串,显然不对:q=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%20%E7%BB%93%E6%9D%9F&hl=zh-CN&lr=&

http://www.google.com/search?q=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%20%E7%BB%93%E6%9D%9F&hl=zh-CN&lr=&nxpt=20.98701769522124843416

[解决办法]
try

string test = "http://www.google.com/search?q=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%20%E7%BB%93%E6%9D%9F&hl=zh-CN&lr=&nxpt=20.98701769522124843416 ";
string result = " ";
Match m = Regex.Match(test, @ "(? <=q=)[^&]*(?=&|$) ", RegexOptions.IgnoreCase);
if (m.Success)
result = m.Value;


不过MS这个可以不用正则来做的
[解决办法]
q=([^&]*)&?
[解决办法]
我觉得你可以换个角度想 提取
http://www.google.com/search?q=后面的字符串

这个正则应该就很简单了哈

呵呵 不知道你要的是不是这样的结果

string str=http://www.google.com/search?q=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%20%E7%BB%93%E6%9D%9F&hl=zh-CN&lr=&nxpt=20.98701769522124843416

string Rstr=Regex.Replace(str,@ "^http://www.google.com/search?q=([\w\W]+)$ ", "$1 ")
[解决办法]
\?q=([^&]*)&?
[解决办法]
To 过客
?=是正向预查
? <=表示什么?

热点排行