[英]Strip date from String with junk data - Java
我需要知道是否有任何方法可以使用java從如下文本中單獨刪除日期。 我試圖找到更通用的東西,但無法獲得任何幫助,因為輸入各不相同。
一些示例輸入:
This time is Apr.19,2021 Cheers
要么
19-04-2021 Cheers
要么
This time is 19-APR-2021
我已經看到一些適用於尾隨垃圾字符的代碼,但如果日期在字符串之間並且它因不同格式而變化,則找不到任何內容。
我們可以在這里使用String#replaceAll
來實現正則表達式的單行方法:
String[] inputs = new String[] {
"This time is Apr.19,2021 Cheers",
"19-04-2021 Cheers",
"This time is 19-APR-2021",
"Hello 2021-19-Apr World"
};
for (String input : inputs) {
String date = input.replaceAll(".*(?<!\\S)(\\S*\\b\\d{4}\\b\\S*).*", "$1");
System.out.println(date);
}
這打印:
Apr.19,2021
19-04-2021
19-APR-2021
2021-19-Apr
如果您假設“日期”是任何以 4 位“單詞”結尾的字母/數字/點/逗號/破折號字符,請匹配並替換為空白以將其刪除
str = str.replaceAll("\\b[A-Za-z0-9.,-]+\\b\\d{4}\\b", "");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.