示例:
a) asdf ghjk (qwer . - tzui
b) asdf ghjk (qwer . - tzui)
c) asdf ghjk (qwer . - tzui) opyx
我想要的是匹配a中的(qwer . - tzui
和b和c中的(qwer . - tzui)
。因此,如果存在一个结束括号,它应该只匹配,直到结束。
我不是真正的正则表达式专家所以我只能为第二和第三个案例提出\(.*\)
这是非常微不足道的。
答案 0 :(得分:1)
试试这个
\([^)\n\r]*\)?
在此处查看online on Regexr
?
使前一个表达式可选,这意味着结束括号现在是可选的。
[^)\n\r]
会将您的.
替换为非贪婪匹配,并且意味着匹配除)\n\r
之外的每个字符。我添加了\n\r
以避免匹配跨行,如果现在出现问题,您可以将其删除并仅保留[^)]
答案 1 :(得分:0)
在正则表达式中的正确位置使用\\)?
以匹配右括号(如果不存在则匹配)(如果不存在则匹配,不匹配)。
完整的正则表达式如下所示:
\\(.*\\)?
(如果要将正则表达式作为Java字符串输入,则需要双反斜杠。)
答案 2 :(得分:-1)
要非常简单,你可以这样做:
\(.*\)?
这样最后一个括号变成可选的。如果这对您有用,请告诉我。