簡體   English   中英

如何在Java中使用正則表達式從字符串中提取數字

[英]How to extract a number from string using regex in java

我嘗試使用

title.substring(title.lastIndexOf("(") + 1, title.indexOf(")"));

我只想提取1899年這樣的年份。

它對像“ hadoop(1899)”這樣的字符串很好用,但是對字符串“ hadoop(yarn)(1980)”拋出錯誤

只需用正則表達式替換括號中除數字以外的所有數字

String foo = "hadoop (1899)"; // or "hadoop(yarn)(1980)"
System.out.println(foo.replaceAll(".*\\((\\d+)\\).*", "$1"));

嗨,看看這個例子。 這是正則表達式,用於提取括號內的數字。

這是您可以使用的可用代碼:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

final String regex = "(?<=\\()\\d+(?=\\))";
final String string = "\"hadoop (1899)\"  \"hadoop(yarn)(1980)\"";

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

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
    for (int i = 1; i <= matcher.groupCount(); i++) {
        System.out.println("Group " + i + ": " + matcher.group(i));
    }
}

暫無
暫無

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

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