![](/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.