簡體   English   中英

如何使用正則表達式替換括號中的字符串?

[英]How can I replace a string in parentheses using a regex?

我有一個字符串:

HLN (Formerly Headline News)

我想刪除parens和parens中的所有內容,只留下:

HLN

我試圖用正則表達式做到這一點,但我的困難在於這種模式:

"(.+?)"

當我使用它時,它總是給我一個PatternSyntaxException 我怎樣才能修復我的正則表達式?

因為括號是regexp中的特殊字符,所以您需要轉義它們以顯式匹配它們。

例如:

"\\(.+?\\)"
String foo = "(x)()foo(x)()";
String cleanFoo = foo.replaceAll("\\([^\\(]*\\)", "");
// cleanFoo value will be "foo"

上面從字符串的任一側刪除空和非空括號。

普通正則表達式:

\([^\(]*\)

您可以在此處測試: http//www.regexplanet.com/simple/index.html

我的代碼基於以前的答案

您可以使用以下正則表達式查找括號:

\([^)]*\)

\\(左括號匹配, [^)]*匹配右括號以外的任意數量的字符,而\\)匹配右括號。

如果您將其包含在java字符串中,則必須轉義\\ _字符,如下所示:

String regex = "\\([^)]*\\)";
String foo = "bar (baz)";
String boz = foo.replaceAll("\\(.+\\)", ""); // or replaceFirst

boz現在是"bar "

暫無
暫無

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

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