62,046
社区成员
发帖
与我相关
我的任务
分享
? <...>//是需要多分组吗??????只要匹配项不是太多,尽量使用默认的组好,这其中涉及到一个优先级
//http://(?<url>([^/]+?))/ 一共有三个组,你定义了2个组...然而这其中一个是毫无意义的...仅仅是可以使用数字组号和字符组号url.....
以下是你的正则测试结果:
恭喜你,共匹配到数据有1项
编号 组名
第1个组的组名为: 0
所匹配的结果如下:
1、 http://d/
第2个组的组名为: 1
所匹配的结果如下:
1、 d
第3个组的组名为: url
所匹配的结果如下:
1、 d
//可能理解有误,希望共同切磋!
static void Main(string[] args)
{
System.Console.Write(Extension("http://cn.f920.mail.yahoo.com/ym/login?.rand=2qn8uuhm51svl"));
}
static String Extension(String url)
{
Regex r = new Regex(@"http://(?<url>([^/]+?))/",
RegexOptions.Compiled);
return r.Match(url).Result("${url}");
}
String Extension(String url)
{
Regex r = new Regex(@"http://(?<url>([^/]+?))/",
RegexOptions.Compiled);
return r.Match(url).Result("${url}");
}
//http://(? <url>([^/]+?))/
//还不如写成http://(.+?)/
string strLinks = @"http://www.google.cn/search?hl=zh-CN&q=asdfasdf&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f
http://www.google.com.mx/search?hl=zh-CN&q=adsf&btnG=Google+%E6%90%9C%E7%B4%A2&meta=
http://hk.search.yahoo.com/search?p=wert&ei=UTF-8&n=10&meta=rst%3Dhk&fr2=&ei=UTF-
http://cn.f920.mail.yahoo.com/ym/login?.rand=2qn8uuhm51svl
http://www.crusher-china.fr/------------- ";
MatchCollection mc = Regex.Matches(strLinks, "http://(.*?)/");//(.*?)/这样其实更简单
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[1].Value);
}
//using System.Text.RegularExpressions;
subjectString = @"http://www.google.cn/search?hl=zh-CN&q=asdfasdf&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f";
try {
Regex regexObj = new Regex("http://([^/]*)/");
Match matchResults = regexObj.Match(subjectString);
while (matchResults.Success) {
// matched text: matchResults.Value
// match start: matchResults.Index
// match length: matchResults.Length
matchResults = matchResults.NextMatch();
}
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}