[英]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.