关于.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
...全文
133 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("注册商:") 判断,然后取得。

内容概要:本文档系统整合了基于MATLAB/Simulink的风力涡轮机雷达信号仿真、电力系统优化、新能源调控及多领域智能算法应用资源,涵盖风电功率平抑、混合储能协同调频、综合能源系统调度、无人机三维路径规划、电动汽车参与调度、电氢氨耦合系统优化等前沿科研方向。资源包提供大量可复现的Matlab代码、Simulink仿真模型、数据集及配套论文,涉及GWO、PSO、WOA、HHO等多种智能优化算法,以及LSTM、CNN、GRU等深度学习模型在负荷预测、故障诊断、信号处理中的应用,尤其聚焦于风电与雷达信号交互、储能功率分配、虚拟电厂运行、微电网多时间尺度优化等关键技术的仿真实现。; 适合人群:具备一定MATLAB编程基础,从事电力系统、新能源、智能优化、信号处理、雷达仿真、综合能源管理等相关领域的科研人员及研究生;工作1-3年相关方向的工程师。; 使用场景及目标:①开展风力发电系统与雷达信号交互仿真研究;②复现高水平期刊论文中的优化调度、故障诊断、功率预测模型;③进行无人机路径规划、储能系统设计、综合能源系统优化等课题研究与论文撰写;④借助成熟的代码框架快速搭建仿真模型,提升科研效率与工程实践能力。; 阅读建议:建议按主题分类浏览资源列表,优先选择标注“复现”“顶刊”“EI”等高价值项目,结合提供的网盘链接下载完整代码与数据,配合Simulink仿真模型与说明文档进行调试与二次开发,注重算法实现与实际工程问题的深度融合。
日常处理文本内容时,你是否也常常被这些琐碎又烦人的操作消耗大量时间:从网页复制来的文章满是空行和多余空格,要一段段手动清理;从不同渠道收集的文档繁简混杂,格式五花八门,想统一规范却只能逐篇调整;面对数千行的数据,想按行排序、去重、添加行号,却找不到一个趁手的小工具;更别提Base64编解码、URL转义这些开发中高频使用的操作,每次都得打开在线网站反复折腾——这些看似零散的文本处理需求,单独去搜工具费时费力,用Word又杀鸡用牛刀,始终缺少一款能把这些功能聚合在一起、打开即用的桌面工具。而 大飞哥软件自习室——文本批量整理工具 v2.0正是为整合这些高频文本处理需求而生的专业效率工具,它集文件管理、文本清洗、格式转换、查找替换、批量插入、排序打乱、编码解码、实时统计等近三十项实用功能于一身,采用多标签页设计支持同时编辑多个文档,所有操作均支持撤销与重做,让你在写代码、整理素材、编辑文案时再也不用东拼西凑找工具,一个软件搞定全部文本处理需求。 软件的核心功能模块围绕文本处理的完整工作流展开,覆盖了从“粗加工”到“精处理”的各个环节。文本清洗模块提供了行首尾去空格、清除所有空格、删除空行、合并多余空格、去除重复行、清除HTML标签等六项功能,一键将脏乱差的原始文本快速规整为干净可用的素材。文本转换模块则涵盖了繁简互转、标点中英文互转、全半角互转、全部大写/小写/首字母大写等选项,尤其适合需要批量处理多语言或不同格式规范的文本内容。查找替换模块不仅支持普通文本替换,更提供了正则表达式和区分大小写选项,查找、替换、全部替换、选区替换四种模式灵活应对不同场景。批量插入文本模块更是独树一帜——用户可预设两组插入内容,选择插入到当前段首/段尾或所有段首/段尾,四个单选按钮搭配两个输入框,实现八种插入组合,为批量处理结构化文本提供了极大的便利。

62,270

社区成员

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

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

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

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