通过.NET DateTime.Parse文化en-US的所有字符串的正则表达式
发布时间:2020-12-14 05:46:54 所属栏目:百科 来源:网络整理
导读:在你告诉我这是很多正则表达式之前 – 我知道.不要求任何人写任何正则表达式!你知道有人已经做过那个 Regex吗? 这将返回所有模式:CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns() 但是这个列表不是100%准确.有些模式不解析(yy / mm
在你告诉我这是很多正则表达式之前 – 我知道.不要求任何人写任何正则表达式!你知道有人已经做过那个
Regex吗?
这将返回所有模式:CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns() 我所做的是分解模式并尝试为每个模式编写正则表达式. (^|s)(3[01]|[12]d|0?[1-9])s+(January|February|March|April|May|June|July|August|September|October|November|December),s?(19|20)?dd(s+(0?d|1d|2[0-4]):[0-6]d(:[0-6]d)?(s+([AP]M|GMT|[+-]dd:?dd))?)? //dd MMMM,yyyy dddd,dd MMMM,yyyy //dd MMMM,yyyy h:mm tt dddd,yyyy h:mm tt //dd MMMM,yyyy hh:mm tt dddd,yyyy h:mm:ss tt //dd MMMM,yyyy h:mm:ss tt dddd,yyyy hh:mm tt //dd MMMM,yyyy hh:mm:ss tt dddd,yyyy hh:mm:ss tt //dd MMMM,yyyy H:mm dddd,yyyy H:mm //dd MMMM,yyyy HH:mm dddd,yyyy HH:mm //dd MMMM,yyyy H:mm:ss dddd,yyyy H:mm:ss //dd MMMM,yyyy HH:mm:ss dddd,yyyy HH:mm:ss (^|s)(3[01]|[12]d|0?[1-9])(/|-)(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(/|-)dd(s+(0?d|1d|2[0-4]):[0-6]d(:[0-6]d)?(s+([AP]M|GMT|[+-]dd:?dd))?)? //dd-MMM-yy //dd-MMM-yy h:mm tt //dd-MMM-yy h:mm:ss tt //dd-MMM-yy hh:mm tt //dd-MMM-yy hh:mm:ss tt //dd-MMM-yy H:mm //dd-MMM-yy HH:mm //dd-MMM-yy H:mm:ss //dd-MMM-yy HH:mm:ss (^|s)(January|February|March|April|May|June|July|August|September|October|November|December)s(3[01]|[12]d|0?[1-9])(,s?|s)(19|20)?dd(s+(0?d|1d|2[0-4]):[0-6]d(:[0-6]d)?(s+([AP]M|GMT|[+-]dd:?dd))?)? //MMMM dd,yyyy dddd,MMMM dd,yyyy //MMMM dd,yyyy h:mm tt dddd,yyyy h:mm tt //MMMM dd,yyyy h:mm:ss tt dddd,yyyy h:mm:ss tt //MMMM dd,yyyy hh:mm tt dddd,yyyy hh:mm tt //MMMM dd,yyyy hh:mm:ss tt dddd,yyyy hh:mm:ss tt //MMMM dd,yyyy H:mm dddd,yyyy HH:mm //MMMM dd,yyyy H:mm:ss dddd,yyyy H:mm:ss //MMMM dd,yyyy HH:mm dddd,yyyy HH:mm:ss //MMMM dd,yyyy HH:mm:ss (^|s)(19|20)dd(/|-)(1[0-2]|0?d)(/|-)(3[01]|[12]d|0?[1-9])(s+(0?d|1d|2[0-4]):[0-6]d(:[0-6]d)?(s+([AP]M|GMT|[+-]dd:?dd))?)? /yy/MM/dd yyyy-MM-dd //yy/MM/dd h:mm tt yyyy-MM-dd h:mm tt //yy/MM/dd hh:mm tt yyyy-MM-dd hh:mm tt //yy/MM/dd h:mm:ss tt yyyy-MM-dd h:mm:ss tt //yy/MM/dd hh:mm:ss tt yyyy-MM-dd hh:mm:ss tt //yy/MM/dd H:mm yyyy-MM-dd H:mm //yy/MM/dd HH:mm yyyy-MM-dd HH:mm //yy/MM/dd H:mm:ss yyyy-MM-dd H:mm:ss //yy/MM/dd HH:mm:ss yyyy-MM-dd HH:mm:ss (^|s)(3[01]|[12]d|0?[1-9])(/|-|/.)(1[0-2]|0?d)(/|-|/.)(19|20)?dd(s+(0?d|1d|2[0-4]):[0-6]d(:[0-6]d)?(s+([AP]M|GMT|[+-]dd:?dd))?)? //fr-FR //dd.MM.yy dd/MM/yy dd-MM-yy dd/MM/yyyy //dd.MM.yy H:mm dd/MM/yy H:mm dd-MM-yy H:mm dd/MM/yyyy H:mm //dd.MM.yy H:mm:ss dd/MM/yy H:mm:ss dd-MM-yy H:mm:ss dd/MM/yyyy H:mm:ss //dd.MM.yy HH' h 'mm dd/MM/yy HH' h 'mm dd-MM-yy HH' h 'mm dd/MM/yyyy HH' h 'mm //dd.MM.yy HH.mm dd/MM/yy HH.mm dd-MM-yy HH.mm dd/MM/yyyy HH.mm //dd.MM.yy HH:mm dd/MM/yy HH:mm dd-MM-yy HH:mm dd/MM/yyyy HH:mm //dd.MM.yy HH:mm:ss dd/MM/yy HH:mm:ss dd-MM-yy HH:mm:ss dd/MM/yyyy HH:mm:ss 解决方法
我要走出困境并假设你没有解析当天的名字,只要其余的日期和时间匹配……毕竟,一旦解析了日期,可以重新生成当天的名称(这需要额外的表达复杂性,所以我决定将其排除.那就是说,我有一个表达式似乎很好地找到GetAllDateTimePatterns返回的所有日期格式,还有其他几个也可能出现(不确定你是否想要这些……):
Tuesday 20 February 2010 mon,jun 12,1999 tue,december 9 1901 Friday,February 03,1900 January 12,2012 (请注意,它与日期名称不匹配,但与日期匹配) 这是表达式: (?i)((3[01]|[12]d|0?[1-9]|d{4})([s/.-]))?b(1[0-2]|0?d|(jan|febr?)(uary)?|ma(r(ch)?|y)|a(pr(il)?|ug(ust)?)|(sept?|oct|nov|dec)((em|o)ber)?|ju(ne?|ly?))b(3|s)(((?(2)|3[01])|[12]d|0?[1-9])(?(2)ddb|b,?s+(20|19)?dd))?s+(d+([:.]d+)+)? 我相信它相当不错(我认为与人类快速浏览文本一样准确),但显然远非完美,因此需要在软匹配后进行真正的解析.如果可能的话,可以通过从搜索中排除部分消息来提高整体搜索的效率 – 如果您要查找的日期都在标题中,那么只针对标题运行表达式! 让我知道它是否运作良好,或者你找到任何边缘情况,我会看看我是否可以修改它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- iphone – 何时何地放置@class声明
- c# – 当param不为null Npgsql时,在linq查询中包含where子句
- applicationContext.xml 配置文件的存放位置
- 顺序表(线性表)操作的思想及实现之C#版
- objective-c – iOS:在ImageView上绘制一个矩形并调整边框
- c# – 为什么在循环中使用StreamSocket会导致内存泄漏?
- sqlite3简单教程整理
- ruby-on-rails – rails button_to:disabled => true仍然显
- c# – 在cshtml中激活IsPost时的不同调用
- Cocos2dx lua 2.xpk 3.x偏Mac OS