簡體   English   中英

正則表達式部分匹配幾個不同的組

[英]regex partial match for several different groups

我需要regexp來匹配來自多個組的字符串構建(A是任何字母,9是任何數字):

第1組正則表達式[AZ] {1,2} [0-9]?

A
A9
AA9

第2組正則表達式[AZ] {1,3} [0-9]?

A
AA
AAA
AAA9

第3組正則表達式[AZ] {2,3} [0-9]?[AZ]?

AAA
AA9
AA9A

第4組正則表達式[0-9] {1,2} [AZ] {1,2} [0-9]?

9A
9AA
9A9
99A9

並非每個組都必須存在,但是所有組都必須以正確的順序排列-我的意思是(數字是組號):

1
12
123
1234

因此,如果存在第3組,那么所有前面的組也必須存在。

由於有四個組(可以更多),所以替代方案就像

^[A-Z]{1,2}[0-9]{1}|[A-Z]{1,2}[0-9]{1}\s{1}[A-Z]{1}[0-9]?$

並非最佳選擇,因為它很復雜且難以維護。 團體或其他解決方案嗎? 組的順序很重要。

此正則表達式將匹配您提供的所有字符串:

^[A-Z]+[0-9]*(\s+[A-Z]+[0-9]*)+$

和無限的單詞。

怎么樣:

^[A-Z]{1,2}[0-9]?(?:\s+[A-Z]{1,3}[0-9]?(?:\s+[A-Z]{2,3}[0-9]?[A-Z]?(?:\s+[0-9]{1,2}[A-Z]{1,2}[0-9]?)?)?)?$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM