在我的程序中,用戶應該能夠指定一個命名方案。他們指定的命名方案應該包含一個簡單的日期格式,如「yyyyMMdd」,「MM-dd-yyyy」,「yyyy/MM/dd」等。我寧願日,月和年的順序無關緊要但可能需要一定的順序(比如第一個接着一個接着一個接着一個接一個)。我希望能夠輕鬆地從字符串中檢索這個日期,以便與SimpleDateFormat類一起使用它。在java中解析一個簡單的日期字符串
下面是一些例子:
input string: "abc?>@dyyyy-MM-dd-|(s*&d)"
output string: "yyyy-MM-dd"
input string: "daddy-MM/dd/yyyy-moMMy"
output string: "MM/dd/yyyy"
最後我想要做的是,以取代當前日期指定的日期格式(用戶提供的字符串)。
如果我想解決這個問題,使用戶可以只輸入一年之後一個月之後的一天,然後我可以做這樣的事情:
String dateFormat = name.substring(name.indexOf("yyyy"), name.indexOf("dd") + 2)
但這意味着用戶不能使用String序列「YYYY 「和」dd「在字符串的其餘部分,否則這種方法將無法正常工作。這個表達式也可以用正則表達式表示,但是我不知道如何輕鬆地從字符串中拉出一個匹配正則表達式的子字符串。
您可以使用[Capture Groups](http://stackoverflow.com/questions/6865377/java-regex-capture-group)將結果從正則表達式中提取出來。 – ean5533
我會建議較少的通用符號;更多的是%Y代表年份,%m代表月份,%d代表日期? –