簡體   English   中英

如何使用正則表達式只獲取`(`和`)`之間的字符?

[英]How get only characters between `(` and `)` using regular expression?

我有這樣的情況:

A= add(1a,2b,3c,4d)現在我只想要方括號內的值。我該怎么辦?有人可以幫我嗎?

我嘗試使用此:

replaceAll("\\\\d",""); 它刪除了所有整數,但是我想用逗號將char放入括號內。

例如: a,b,c,d

([0-9()]|.*(?=\())

[0-9()]這將匹配數字和方括號

.*(?=\\()這將匹配左括號之前的所有內容

| 在中間的行為類似於OR例如match (THIS | THIS)

在您替換的情況下,此A= add(1a,2b,3c,4d)將變為a,b,c,d

在此處進行測試,然后選擇頂部http://gskinner.com/RegExr/上的替換標簽

您可以使用此正則表達式:

\\\\((.*?)\\\\)

如果你想提取沒有的字符,你可以使用String#split

您的解決方案不起作用,因為您所做的無關緊要。 您將所有數字替換為"" ,這意味着要刪除它們。

另一個解決方案:

String myStr = str.split("\\(|\\)")[1];

如果您的字符串是A= add(1a,2b,3c,4d) ,則在正則表達式之后,您將獲得1a,2b,3c,4d 如果您不想要int ,請使用replaceAll

\\(([^\\)]*)\\)將在第一組"a,b,c,d"歸還。

您需要的模式是: "\\\\((.*)\\\\)"

下面的代碼演示了如何使用此模式來查找所有出現在輸入字符串中括號內的項目:

String example = "A= add(a,b,c,d)";
Pattern pattern = Pattern.compile("\\((.*)\\)");    
Matcher matcher = pattern.matcher(example);

while (matcher.find()) {
  System.out.println(matcher.group(1));
}

印刷品:

a,b,c,d

暫無
暫無

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

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