求一条正则表达式,匹配日期时间的

jacksoncan 2012-09-10 03:07:30
从网上获取了一些string的文本如下,现在想将日期时间部分抽取出来(即:mm月dd日 mm:ss,不要括号),用以插入数据库新闻表中一个叫“时间”的字段里;


我知道用split也可以做到这一点,但应该没有用正则的匹配那么完美,因为如果文本当中遇到还有括号的话,那就麻烦了,所以恳请高手相助,谢谢啊



金隅原董事候选人逝世 推荐于世良为新任候选人(09月10日 13:05)
中燃暂未获北控洽业务合作 未来关系或更紧密(09月10日 12:25)
民生紧急72小时:外资围剿公司火线会议维稳(09月10日 11:06)
消费者称蒙牛牛奶现活虫索赔10万 蒙牛否认(09月10日 10:05)
...

...全文
310 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacksoncan 2012-09-16
  • 打赏
  • 举报
回复
谢谢各位高手
flarejune 2012-09-14
  • 打赏
  • 举报
回复
\((\d{1,2}月\d{1,2}日\s\d{1,2}\:\d{1,2})\)
flarejune 2012-09-14
  • 打赏
  • 举报
回复
\((\d{1,2}月\d{1,2}日\s\d{1,2}\:\d{1,2})\)
  • 打赏
  • 举报
回复
string tempStr = @"金隅原董事候选人逝世 推荐于世良为新任候选人(09月10日 13:05)
中燃暂未获北控洽业务合作 未来关系或更紧密(09月10日 12:25)
民生紧急72小时:外资围剿公司火线会议维稳(09月10日 11:06)
消费者称蒙牛牛奶现活虫索赔10万 蒙牛否认(09月10日 10:05)
";
List<string> result = Regex.Matches(tempStr,@"(?<=\()[^()]+?(?=\))").Cast<Match>().Select(a=>a.Value).ToList();
/*
* [0] "09月10日 13:05" string
[1] "09月10日 12:25" string
[2] "09月10日 11:06" string
[3] "09月10日 10:05" string

*/
jacksoncan 2012-09-14
  • 打赏
  • 举报
回复
高手走了,热心人不在了?
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
这样写严密一些:\((\d{1,2}月\d{1,2}日 \d{1,2}:\d{1,2})
[/Quote]

正则匹配本来就是根据提供的字符串匹配相应的内容,如果内容变化,匹配规则肯定要跟着变化

其实只要能达到目的就可以了,如果你还想严密,是否还需要考虑中间的空格数量,以及括号、冒号是否中英文状态下的?
haojuntu 2012-09-14
  • 打赏
  • 举报
回复
这样写严密一些:\((\d{1,2}月\d{1,2}日 \d{1,2}:\d{1,2})
haojuntu 2012-09-14
  • 打赏
  • 举报
回复
\((\d{2}月\d{2}日 \d{2}:\d{2})
jacksoncan 2012-09-11
  • 打赏
  • 举报
回复
太简单?懒得写?

110,537

社区成员

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

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

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