例赛结束支架:只有当它存在
a) asdf ghjk (qwer . - tzui
b) asdf ghjk (qwer . - tzui)
c) asdf ghjk (qwer . - tzui) opyx
我想是在B和C匹配一个(qwer . - tzui
和(qwer . - tzui)
。所以如果存在结尾括号,它应该只匹配直到结束,否则直到结束。
我不是一个真正的正则表达式专家,所以我只能想出\(.*\)
第二个和第三个案例,这是非常平凡的。
例赛结束支架:只有当它存在
a) asdf ghjk (qwer . - tzui
b) asdf ghjk (qwer . - tzui)
c) asdf ghjk (qwer . - tzui) opyx
我想是在B和C匹配一个(qwer . - tzui
和(qwer . - tzui)
。所以如果存在结尾括号,它应该只匹配直到结束,否则直到结束。
我不是一个真正的正则表达式专家,所以我只能想出\(.*\)
第二个和第三个案例,这是非常平凡的。
试试这个
\([^)\n\r]*\)?
的?
使得以前的表达式可选,这意味着右括号现在是可选的。
[^)\n\r]
将您的.
替换为非贪婪匹配,并意味着匹配每个字符,但)\n\r
。我添加了\n\r
以避免匹配横排,如果这是现在的问题,您可以删除它们并只留下[^)]
在正则表达式的正确位置使用\\)?
,以匹配右括号(如果存在的话)(或者如果不存在则不匹配)。
完整的正则表达式应该是这样的:
\\(.*\\)?
(如果正则表达式是要输入作为一个Java字符串需要双反斜线)。
要非常simplist,你可以这样做:
\(.*\)?
,这样最后一个括号变为可选。让我知道这是否适合你。
好吧,但它也匹配任何我不想要的最后一个pamental之后的任何东西。 – letmaik
括号可以嵌套吗?如果是这样,请准备好一些困难。 –
幸运的是不是:) – letmaik