簡體   English   中英

帶下划線的Java正則表達式

[英]Java Regex with underscore

Pattern r = Pattern.compile("(\\w+)\\s+(\\w+)\\s+(\\w+)\\s*");
Matcher m = r.matcher(line);
if (m.find()) {
    System.out.println("Found: " + m.group(2));
} else {
    System.out.println("Not found");
}

當我使用這個:

HEY_YO NICE GUYHERE

它顯示輸出:找不到。 如何獲得帶下划線的字符串? (_)

輸入:

HEY_YO NICE GUYHERE

我想輸出:

Found: HEY_YO

我認為您沒有傳遞“ HEY_YO NICE GUYHERE”作為輸入,因為對於此輸入,您的代碼將產生“ Found:NICE”作為輸出。要獲取要替換的輸出

System.out.println("Found: " + m.group(2));

System.out.println("Found: " + m.group(1));

使用matcher.find()您只能指定要捕獲的內容:

public static void main(String[] args) {
    String line = "HEY_YO NICE GUYHERE";
    Pattern r = Pattern.compile("[a-zA-Z]+_[a-zA-Z]+");
    Matcher m = r.matcher(line);
    if (m.find()) {
        System.out.println("Found: " + m.group(0));
    } else {
        System.out.println("Not found");
    }

}

O / P:

Found: HEY_YO

暫無
暫無

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

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