簡體   English   中英

用垃圾數據從字符串中剝離日期 - Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM