[英]Java regex get unmatched portion
我正在匹配表單的正則表達式
abc.*def.*pqr.*xyz
現在字符串abc123def456pqr789xyz
將匹配模式。 我想找到匹配器的字符串123,456,789。
最簡單的方法是什么?
將正則表達式更改為abc(.*)def(.*)pqr(.*)xyz
,括號將自動綁定到
$1
到$3
有關詳細信息,請參閱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.