2015-12-21 31 views
0

考慮下面的正則表達式:正則表達式:「在捕獲的至少一個必須匹配」

/^(A....)?(B..)?(C...)?$/ 

有沒有辦法來限制正則表達式的方式說,「捕獲的至少一個必須匹配「?

其實我需要這個Java正則表達式。我可以想象,這是不可能的。也許用更強大的Perl正則表達式機器?

當然,我可以後處理,但也許有另一種方式..

+2

如果您使用Java,爲什麼添加Perl標籤? – ThisSuitIsBlackNot

+0

我認爲沒有辦法:你必須後處理,以確保這個規則匹配。實際上,我懷疑Perl是否有這樣的機制...... –

+1

你能舉一個你的意思嗎? – Sobrique

回答

2

只要確保東西與前瞻匹配

/^(?=.)(A....)?(B..)?(C...)?$/ 
+0

偉大的答案!完美的作品。比前一個更好,因爲後視是沒有必要的。 –

2

您可以使用此模式:

^(A....)?(B..)?(C...)?(?<=.)$ 

末尾的零寬度斷言確保總體匹配中至少有一個字符,它不會是如果沒有任何組匹配任何情況。

0

正則表達式匹配模式:

/apples|bananas|carrots/

源文: This allows apples or bananas or carrots to appear anywhere in the source text, confirming that the source contains at least of of the choices. https://regex101.com/r/gZ1cW5/1

但是,正如我評論,目前尚不清楚你真正想要的。目前還不清楚你是否需要知道哪一個匹配。 您應該始終發佈要評估的示例源文本。

+0

感謝您的回答。但它看起來很清楚,我想要什麼,因爲我收到了我的問題的非常確切的答案。 –

相關問題