![](/img/trans.png)
[英]Regular expression to extract the word from the string ${VALUE(word_to_be_extracted)} in java
[英]Regular expression to extract Date value specified in word from the string in Java
我有日期列,其中包含以下示例值
我想提取给定字符串中的日期(以粗体显示),我可以得到一个正则表达式来检测单词中指定的日期。
谢谢!!
我想这取决于您需要表达的严格程度。 这将适用于您的所有示例:
/(January|February|March|April|May|June?|July|August|September|October|November|December)\\s(\\d\\d?).+?(\\d\\d\\d\\d)/
但是没有执行st , nd , rd , th规则。
逗号也没有强制执行,将日期与年份分开。
还有一个特殊情况,即六月的缩短(例如,示例5中有一个可选的6月的e
),但没有考虑其他缩短的月份的名称。
Firebug的示例输出:
>>> /(January|February|March|April|May|June?|July|August|September|October|November|December)\s(\d\d?).+?(\d\d\d\d)/.exec(s1)
["June 25, 2010", "June", "25", "2010"]
>>> /(January|February|March|April|May|June?|July|August|September|October|November|December)\s(\d\d?).+?(\d\d\d\d)/.exec(s2)
["March 14, 2011", "March", "14", "2011"]
>>> /(January|February|March|April|May|June?|July|August|September|October|November|December)\s(\d\d?).+?(\d\d\d\d)/.exec(s3)
["April 15, 2011", "April", "15", "2011"]
>>> /(January|February|March|April|May|June?|July|August|September|October|November|December)\s(\d\d?).+?(\d\d\d\d)/.exec(s4)
["March 31st, 2011", "March", "31", "2011"]
>>> /(January|February|March|April|May|June?|July|August|September|October|November|December)\s(\d\d?).+?(\d\d\d\d)/.exec(s5)
["Jun 3, 2011", "Jun", "3", "2011"]
不要重新发明,因为它是一个相当普遍的问题,所以有很多程序可以满足您的需求。 尝试阅读此http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/或仅浏览stackoverflow一点,您会发现很多!
/\w+\s\d+(st)?(nd)?(rd)?(th)?,\s+\d+/
更全面的正则表达式,可以接受与确切键入的月份不匹配但与“月份(可选)”,“年份”匹配的形式
请注意,您可能会看到以下内容:
Blah 45rd,2022222
而且它仍然会抓住它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.