正则表达式 取第二个时间之前的内容

liulangdeyuyu 2010-09-10 11:19:24
如题

求一个正则表达式,提取第二个时间之前的内容
...全文
308 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulangdeyuyu 2010-09-14
  • 打赏
  • 举报
回复
谢谢“逍遥”避开我的帖子,咱们两个沟通起来不容易!
Peter200694013 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
贴个例子
[/Quote]
+1
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
贴个例子
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
查阅了一下你的发帖纪录,还真是不凑巧,正则问题还很少沟通不畅的,可能是我都没理解你的意思,或是你也考虑一下2个地方。
1.你真的理解正则是做什么的么?从你的几个帖子的问题,感觉你的想法有点飘。
2.你描述问题很少能比较准确,这个不怪你,毕竟提出需求的人往往都是对需求最理解的人,但未必能很好的抽象,提取,这是分析需求的人该做的。

正则表达式或略空格、换行
http://topic.csdn.net/u/20100721/10/e7257f00-9741-4a96-948e-736e916a2c22.html
总结一下这个帖子,正则的匹配都是对应具体规则的,你不能说回车看不见就忽略掉,回车、换行需要用\r\n匹配的,如果正则表达式为"aa",你无论如何设置都无法匹配a a的。

有关正则匹配效率问题
http://topic.csdn.net/u/20100806/09/6da97532-14ce-4fa7-8232-e616cd34bb97.html
这个不一定,有可能前者会快一点,但如果搜索指定字符,要求效率,显然需要自己实现一个匹配方法,毕竟自己实现可以达到一次大循环,内部多次循环,或空间换时间记录匹配状态来实现。

求一条正则
http://topic.csdn.net/u/20100603/20/23529112-bbf7-4bbd-b467-8aef0a702bfa.html
没答案的时候,你不要着急,多解释一下自己想法。的确给你的第二条匹配不完整。不过一条正则,你的规则不是很明晰的情况下,是很难做到的,如果分2次将会很准确,也很容易。

求一个正则表达式!
http://topic.csdn.net/u/20100411/10/66863a10-ca56-4458-8eba-5e2d866751a8.html
4楼的已经是很标准的回答了。

总结这些帖子来看。
你的表达方式或我的理解方式,的确有一方是有问题的,以后我会注意避开你的帖子。
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 liulangdeyuyu 的回复:]
虽说不对,但还是把分给你吧
[/Quote]
我真情愿你是无满意答案结贴。标记楼主为唯一黑名单。
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
虽说不对,但还是把分给你吧
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
    private static void TestRegex19()
{
string html = @"文本2010-9-9 10:8:8
这里是第二段文本,
接下来是第二个时间
2010/09/9 7:08:28";
string result = Regex.Match(html, @"(?is)^.+?\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?.+?(?=\d{4}([-/\\]?)\d{1,2}\3\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?)").Value;
Console.WriteLine(result);
}

不支持的格式你贴出类似这样的短小范例。
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
虽然不行但还是谢谢(逍遥)
你这个匹配的时间格式不全
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
给你的已经支持多种格式了。-/\都可以。15楼说不行时如何测试的?
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
过客 什么时候来啊,还是 过客 的正则强悍
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wuyazhe 的回复:]

C# code
(?is)^.+?\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?.+?(?=\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?)
[/Quote]

能不能给个全一点的时间格式啊
09-10 11:19:24
09/10 11:19:24
.......等等


不懂装懂 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wuyazhe 的回复:]
C# code
(?is)^.+?\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?.+?(?=\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?)
[/Quote]
好长,测了一下这个貌似不太对
air123456789 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wuyazhe 的回复:]

C# code
(?is)^.+?\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?.+?(?=\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?)
[/Quote]
这么长。
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
(?is)^.+?\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?.+?(?=\d{4}([-/\\]?)\d{1,2}\1\d{1,2}( \d{1,2}:\d{1,2}:\d{1,2})?)
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyazhe 的回复:]

(?is)^.+?\d{4}([-/]?)\d{2}\1\d{2} \d{2}:\d{2}:\d{2}.+?(?=\d{4}([-/]?)\d{2}\1\d{2} \d{2}:\d{2}:\d{2})
[/Quote]

还差点
有的时间是
2010-09-10 11:19:24
也有的时间是
2010-09-10 11:19
2010-9-10 11:19:24
2010-09-10 11:9:24
2010\09\10 11:19:24
2010\09\10 11:19
2010-09-10

时间格式不确定
你的只能匹配几种时间,不能匹配全
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
string html = @"";
string result = Regex.Match(html, @"(?is)^.+?\d{4}([-/]?)\d{2}\1\d{2} \d{2}:\d{2}:\d{2}.+?(?=\d{4}([-/]?)\d{2}\1\d{2} \d{2}:\d{2}:\d{2})").Value;
兔子-顾问 2010-09-10
  • 打赏
  • 举报
回复
(?is)^.+?\d{4}([-/]?)\d{2}\1\d{2} \d{2}:\d{2}:\d{2}.+?(?=\d{4}([-/]?)\d{2}\1\d{2} \d{2}:\d{2}:\d{2})
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyazhe 的回复:]

哦。没看到你回复。

那直接用
string html = "你的源码";
html = html.SubString(0,html.IndexOf("发表于:");
这样可以么?
[/Quote]

7楼也不对,不能确定"发表于:",现在只能确定是第二个时间之前,其他的都不确定
liulangdeyuyu 2010-09-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyazhe 的回复:]

(?is).+?(?='截至)
[/Quote]

6楼的不对
要有通用性,是第二个时间之前,截至可能不存在

时间格式也不确定
加载更多回复(5)

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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