模式例如:正則表達式表示爲車牌
L(IP)-P(F)-2(014)
更多的例子:
B-G-2
BI-GH-1245
HH-X-124
在括號中的字符是可選的。首先(最多3個字符,分鐘1)和第二部分(最多2個字符,分鐘1)僅由字母組成。第三部分(最大4.分鐘1)僅包含數字。部件按「 - 」分隔。
任何想法如何正則表達式這將看起來像?
模式例如:正則表達式表示爲車牌
L(IP)-P(F)-2(014)
更多的例子:
B-G-2
BI-GH-1245
HH-X-124
在括號中的字符是可選的。首先(最多3個字符,分鐘1)和第二部分(最多2個字符,分鐘1)僅由字母組成。第三部分(最大4.分鐘1)僅包含數字。部件按「 - 」分隔。
任何想法如何正則表達式這將看起來像?
可以使用字符類[A-Z]
匹配任何大寫字符,並\d
匹配任何數字。您可以使用{m,n}
,這意味着「米和之間的一個元素匹配ñ次」指定重複:
它可能是這個樣子:
[A-Z]{1,3}-[A-Z]{1,2}-[0-9]{1,4}
您可能還需要添加開始串錨和結束(^
和$
分別地):
^[A-Z]{1,3}-[A-Z]{1,2}-[0-9]{1,4}$
這取決於瓦特無論你是試圖從大字符串中拉出牌照,還是試圖查看某個字符串是否爲牌照(而沒有其他字符串)。
如果您還需要匹配小寫字符,請將[A-Z]
中的每個類都更改爲[A-Za-z]
。
括號內的可選文本怎麼辦? – anubhava
括號不存在,這是OP選擇代表可選字符的方式。目標是匹配1-3個字母,短劃線,1-2個字母,短劃線,然後1-4個數字。最近幾個例子的編輯支持我的解釋。 –
@F。J謝謝,我在java中使用它,它給了我一個錯誤「無效的轉義序列」http://developer.android.com/reference/java/util/regex/Pattern.html –
如果我正確地解釋你,你基本上需要
< 1-3字母> < 1-2字母> < 1-4數字>
或[A-ZA-Z] {1, 3} - [A-Za-z] {1,2} - [0-9] {1,4}
它是那些確切的字母和數字嗎?例如,第一個字母總是L,還是隻是任何大寫字母的佔位符? –
沒有那種方式只是一個例子。可能是任何字母和任何數字 –
只需檢查。那麼一些合法的例子是L-P-2,LAB-PD-2和LA-PD-201?或者L和P也在括號內嗎? – AlwaysLearning