簡體   English   中英

Java正則表達式獲得無與倫比的部分

[英]Java regex get unmatched portion

我正在匹配表單的正則表達式

abc.*def.*pqr.*xyz

現在字符串abc123def456pqr789xyz將匹配模式。 我想找到匹配器的字符串123,456,789。

最簡單的方法是什么?

將正則表達式更改為abc(.*)def(.*)pqr(.*)xyz ,括號將自動綁定到

有關詳細信息,請參閱Pattern類的文檔,尤其是Groups和Capturing

示例代碼:

final String needle = "abc(.*)def(.*)pqr(.*)xyz";
final String hayStack = "abcXdefYpqrZxyz";

// Use $ variables in String.replaceAll()
System.out.println(hayStack.replaceAll(needle, "_$1_$2_$3_"));
// Output: _X_Y_Z_


// Use Matcher groups:
final Matcher matcher = Pattern.compile(needle).matcher(hayStack);
while(matcher.find()){
    System.out.println(
        "A: " + matcher.group(1) +
        ", B: " + matcher.group(2) +
        ", C: " + matcher.group(3)
    );
}
// Output: A: X, B: Y, C: Z

這是一個正則表達式可能會做你需要的。

abc(\\d*)def(\\d*)pqr(\\d*)xyz

但是,我們應該有更多的輸入字符串示例,以及應該匹配的內容。

暫無
暫無

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

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