簡體   English   中英

正則表達式接受5個字符(可選)

[英]Regular expression to accept 5 characters with optional

嗨,我必須編寫一個應與A12BC之類的格式匹配的正則表達式。 在此,前2個字符(即A1為必填項,接下來的3個字符2BC是可選項。 目前,如果我將字符串值設置為A12BC則我的regEx可以使用。

當我將輸入提供為A1B它不應該匹配,但是我的正則表達式匹配並將結果作為懷疑。 誰能幫助我並修改我的RegExp,使其表現如下:

  • 情況“ A1”:應匹配
  • 情況“ A1B”:不匹配(此情況不起作用)
  • 案例“ A12B”:應該匹配
  • 案例“ A12BC”:應該匹配
  • 情況“ A12BCD”:不匹配

我的正則表達式如下:

^[a-zA-Z][0-9][0-9]?[a-zA-Z]?[a-zA-Z]?$

要確保第三個字符(如果存在)是數字,請在可選組中將第三個字符設為必需,如下所示:

^[a-zA-Z][0-9]([0-9][a-zA-Z]?[a-zA-Z]?)?$

該表達式表示,如果存在第三個字符,則需要匹配一個數字。 兩個尾隨字母也是可選的。

注意:您可以通過使用預定義的字符類 \\w和字母\\d來簡化表達式。 請記住,您需要將反斜杠加倍以用於“普通”字符串文字(與逐字字符串不加倍的逐字字符串文字相反)。

您可以使用:

^[a-zA-Z][0-9](?:[0-9][a-zA-Z]{0,2})?$

2BC模式中,必須先使數字為強制性,然后再允許零,一或兩個字母。

(?:[0-9][a-zA-Z]{0,2})? 匹配一個空字符串或一個數字,或者一個數字后跟一個字母,或者一個數字后跟兩個字母,但不能匹配一個字母。

(?:...)是一個非捕獲組,請參見此處的演示

暫無
暫無

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

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