簡體   English   中英

正則表達式在2位數字后按字符串分割

[英]Regex split on string after 2 digits

如何將我的字符串分成有效的貨幣或雙精度格式。 我知道所有值都只有2個小數。

String line = "3850.439.00 0.00 260.00 23";

因此3850.439.00是不正確的,需要拆分。

我有這個

String[] arr = line.split("\\d+.(\\.\\d{2})");

但結果不正確9.00 0.00 23

要求的結果將是3850.43 9.00 0.00 260.00 23

除了split您還可以在正則表達式后面使用此否定后綴,以從輸入中獲取所有有效匹配項:

(?<!\.)\d+(?:\.\d{2})?

正則演示

(?<!\\.)是否定的后向斷言,表示當前一個字符是DOT時失敗。

Java代碼:

final String regex = "(?<!\\.)\\d+(?:\\.\\d{2})?";
final String string = "3850.439.00 0.00 260.00 23";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
}

Java的正則表達式參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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