关于.net 正则匹配的问题

caicoko 2011-03-12 06:54:16

注册商: XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP
域名服务器: whois.ename.com
相关网站: http://www.ename.com
DNS 服务器: NS1.ENAME.NET
DNS 服务器: NS2.ENAME.NET
DNS 服务器: NS3.ENAME.NET
DNS 服务器: NS4.ENAME.NET
DNS 服务器: NS5.ENAME.NET
DNS 服务器: NS6.ENAME.NET
状态: clientDeleteProhibited
状态: clientTransferProhibited
更新时间: 10-mar-2011
创建时间: 07-mar-2007
过期时间: 07-mar-2016




如上代码,我如何匹配创建时间,得到07-mar-2007,然后转换成阿拉伯数字格式2007-03-07

匹配过期时间,得到07-mar-2016,然后转换成阿拉伯数字格式2016-03-07

匹配注册商,得到XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP
...全文
88 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenquan123 2011-03-12
  • 打赏
  • 举报
回复

//sorry 没注意看
string str = "注册商: XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP"
+ "域名服务器: whois.ename.com"
+ "相关网站: http://www.ename.com"
+ "DNS 服务器: NS1.ENAME.NET"
+ "DNS 服务器: NS2.ENAME.NET"
+ "DNS 服务器: NS3.ENAME.NET"
+ "DNS 服务器: NS4.ENAME.NET"
+ "DNS 服务器: NS5.ENAME.NET"
+ "DNS 服务器: NS6.ENAME.NET"
+ "状态: clientDeleteProhibited"
+ "状态: clientTransferProhibited"
+ "更新时间: 10-mar-2011"
+ "创建时间: 07-mar-2007"
+ "过期时间: 07-mar-2016";
Regex reg = new Regex(@"(?is)(?<=注册商:)(.*?)(?=域名服务器)|(?<=更新时间:)(.*?)(?=创建时间)|(?<=创建时间:)(.*?)(?=过期时间)|(?<=过期时间:)(.*)");
MatchCollection match = reg.Matches(str);
foreach (Match m in match)
{
if (m.Groups[1].Success)
Response.Write(m.Groups[1].Value + "<br/>");
if (m.Groups[2].Success)
Response.Write(Convert.ToDateTime(m.Groups[2].Value).ToString("yyyy-MM-dd") + "<br/>");
if (m.Groups[3].Success)
Response.Write(Convert.ToDateTime(m.Groups[3].Value).ToString("yyyy-MM-dd") + "<br/>");
if (m.Groups[4].Success)
Response.Write(Convert.ToDateTime(m.Groups[4].Value).ToString("yyyy-MM-dd") + "<br/>");
}
/*
XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP
2011-03-10
2007-03-07
2016-03-07
*/
caicoko 2011-03-12
  • 打赏
  • 举报
回复
楼上都搞错了,我给的代码是没有,号的,都匹配逗号了~
huangwenquan123 2011-03-12
  • 打赏
  • 举报
回复

/*
XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP
2011-03-10
2007-03-07
2016-03-07
*/
huangwenquan123 2011-03-12
  • 打赏
  • 举报
回复

string str = "注册商: XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP,"
+ "域名服务器: whois.ename.com,"
+ "相关网站: http://www.ename.com,"
+ "DNS 服务器: NS1.ENAME.NET,"
+ "DNS 服务器: NS2.ENAME.NET,"
+ "DNS 服务器: NS3.ENAME.NET,"
+ "DNS 服务器: NS4.ENAME.NET,"
+ "DNS 服务器: NS5.ENAME.NET,"
+ "DNS 服务器: NS6.ENAME.NET,"
+ "状态: clientDeleteProhibited,"
+ "状态: clientTransferProhibited,"
+ "更新时间: 10-mar-2011,"
+ "创建时间: 07-mar-2007,"
+ "过期时间: 07-mar-2016";
Regex reg = new Regex(@"(?is)(?<=注册商:)([^,]*)|(?<=更新时间:)([^,]*)|(?<=创建时间:)([^,]*)|(?<=过期时间:)([^,]*)");
MatchCollection match = reg.Matches(str);
foreach (Match m in match)
{
if (m.Groups[1].Success)
Response.Write(m.Groups[1].Value + "<br/>");
if (m.Groups[2].Success)
Response.Write(Convert.ToDateTime(m.Groups[2].Value).ToString("yyyy-MM-dd") + "<br/>");
if (m.Groups[3].Success)
Response.Write(Convert.ToDateTime(m.Groups[3].Value).ToString("yyyy-MM-dd") + "<br/>");
if (m.Groups[4].Success)
Response.Write(Convert.ToDateTime(m.Groups[4].Value).ToString("yyyy-MM-dd") + "<br/>");
}
子夜__ 2011-03-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caicoko 的回复:]

楼上的,ToList() 是那边来的,运行错误
[/Quote]

新建页面命名ZZ.aspx

然后.CS中写 VS2008

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CsdnTester
{
public partial class ZZ : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

string str = "注册商: XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP,"
+ "域名服务器: whois.ename.com,"
+ "相关网站: http://www.ename.com,"
+ "DNS 服务器: NS1.ENAME.NET,"
+ "DNS 服务器: NS2.ENAME.NET,"
+ "DNS 服务器: NS3.ENAME.NET,"
+ "DNS 服务器: NS4.ENAME.NET,"
+ "DNS 服务器: NS5.ENAME.NET,"
+ "DNS 服务器: NS6.ENAME.NET,"
+ "状态: clientDeleteProhibited,"
+ "状态: clientTransferProhibited,"
+ "更新时间: 10-mar-2011,"
+ "创建时间: 07-mar-2007,"
+ "过期时间: 07-mar-2016";
List<string> lt = new List<string>();
lt = str.Split(',').ToList();

for (int i = 0; i < lt.Count; i++)
{
if (lt[i].Split(':').ToList()[0].ToString() == "更新时间")
{
Response.Write(Convert.ToDateTime(lt[i].Split(':').ToList()[1].ToString()).ToString("yyyy-MM-dd") + "<br/>");
}
else if (lt[i].Split(':').ToList()[0].ToString() == "创建时间")
{
Response.Write(Convert.ToDateTime(lt[i].Split(':').ToList()[1].ToString()).ToString("yyyy-MM-dd") + "<br/>");
}
else if (lt[i].Split(':').ToList()[0].ToString() == "过期时间")
{
Response.Write(Convert.ToDateTime(lt[i].Split(':').ToList()[1].ToString()).ToString("yyyy-MM-dd") + "<br/>");
}
else
{
Response.Write(lt[i].Split(':').ToList()[1].ToString()+"<br/>");
}
}
}
}
}
机器人 2011-03-12
  • 打赏
  • 举报
回复
你的.net 什么版本?

需要 using System.Linq;
caicoko 2011-03-12
  • 打赏
  • 举报
回复
楼上的,ToList() 是那边来的,运行错误
子夜__ 2011-03-12
  • 打赏
  • 举报
回复
由于正则不是很会

给你来个无正则版本的。。


  protected void Page_Load(object sender, EventArgs e)
{

string str = "注册商: XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP,"
+ "域名服务器: whois.ename.com,"
+ "相关网站: http://www.ename.com,"
+ "DNS 服务器: NS1.ENAME.NET,"
+ "DNS 服务器: NS2.ENAME.NET,"
+ "DNS 服务器: NS3.ENAME.NET,"
+ "DNS 服务器: NS4.ENAME.NET,"
+ "DNS 服务器: NS5.ENAME.NET,"
+ "DNS 服务器: NS6.ENAME.NET,"
+ "状态: clientDeleteProhibited,"
+ "状态: clientTransferProhibited,"
+ "更新时间: 10-mar-2011,"
+ "创建时间: 07-mar-2007,"
+ "过期时间: 07-mar-2016";
List<string> lt = new List<string>();
lt = str.Split(',').ToList();

for (int i = 0; i < lt.Count; i++)
{
if (lt[i].Split(':').ToList()[0].ToString() == "更新时间")
{
Response.Write(Convert.ToDateTime(lt[i].Split(':').ToList()[1].ToString()).ToString("yyyy-MM-dd") + "<br/>");
}
else if (lt[i].Split(':').ToList()[0].ToString() == "创建时间")
{
Response.Write(Convert.ToDateTime(lt[i].Split(':').ToList()[1].ToString()).ToString("yyyy-MM-dd") + "<br/>");
}
else if (lt[i].Split(':').ToList()[0].ToString() == "过期时间")
{
Response.Write(Convert.ToDateTime(lt[i].Split(':').ToList()[1].ToString()).ToString("yyyy-MM-dd") + "<br/>");
}
else
{
Response.Write(lt[i].Split(':').ToList()[1].ToString()+"<br/>");
}
}
}


结果
XIAMEN ENAME NETWORK TECHNOLOGY CORPORATION LIMITED DBA ENAME CORP
whois.ename.com
http://www.ename.com
NS1.ENAME.NET
NS2.ENAME.NET
NS3.ENAME.NET
NS4.ENAME.NET
NS5.ENAME.NET
NS6.ENAME.NET
clientDeleteProhibited
clientTransferProhibited
2011-03-10
2007-03-07
2016-03-07
机器人 2011-03-12
  • 打赏
  • 举报
回复
这种内容,用遍历,然后用 string.StartWith("注册商:") 判断,然后取得。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧