首页 / 正则 / c# – 使用正则表达式匹配多个模式
c# – 使用正则表达式匹配多个模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用正则表达式匹配多个模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1086字,纯文字阅读大概需要2分钟。
内容图文
![c# – 使用正则表达式匹配多个模式](/upload/InfoBanner/zyjiaocheng/762/a45911be39d94914a593952ee3f79a55.jpg)
我有3组:时间,日期和别针.我可以让这一行匹配这一行:
26/06/2012 33:06:12a_user_logged_in,3412234,2,3,512,3
33:06:12a_user_logged_in,3412234,2,3,512,3,26/06/2012
26/06/2012 a_user_logged_in_at,33:06:12,3412234,2,3,512,3
我希望将26/06/2012作为日期组,33:06:12作为时间,将3412234作为引脚组.
我已经成功地做到了这一点,但只有线条必须像第一个一样处于某种模式
(?<date>[\d]+/[\d]+/[\d]+) (?<time>[\d]+:[\d]+:[\d]+)([ |,][a-zA-z]*)+,(?<pin>[\d]{4,10}).+
但是当我将这种模式应用于其他两种线形式时,它并不匹配.
我的问题是,无论线形是什么,如何匹配时间,日期和引脚组?
解决方法:
如果您不想同时验证模式,可以从字符串的开头使用lookaheads.由于它们实际上并没有消耗任何东西,因此在完成一个前瞻后引擎会跳回到开始状态.因此,三场比赛的顺序无关紧要:
^(?=.*(?<date>\d+/\d+/\d+))(?=.*(?<time>\d+:\d+:\d+))(?=.*,(?<pin>\d{4,10}))
请注意,在引脚组前面.否则,您可能会将年份作为引脚(因为它也是4位数).
但话又说回来,为了您的代码的可读性,您可能希望将其分成三种模式(这也避免了捕获,因此它甚至可能不会那么慢):
Pattern for date: \d+/\d+/\d+
Pattern for time: \d+:\d+:\d+
Pattern for pin: (?<=,)\d{4,10}
这些只会在整场比赛中为您提供所需的值.
内容总结
以上是互联网集市为您收集整理的c# – 使用正则表达式匹配多个模式全部内容,希望文章能够帮你解决c# – 使用正则表达式匹配多个模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。