例賽結束支架:只有當它存在
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