[英]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));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.