簡體   English   中英

如何編寫RegEx來檢查特定數量的特定字符?

[英]How to write a RegEx to check for a certain, specific number of characters?

我正在嘗試為狀態代碼測試字符串,我擁有的正則表達式是

^A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY]$

問題是,如果我將“ CTA12”之類的東西作為測試字符串,它將獲得CT匹配項。 如何修改我的正則表達式,使其僅匹配不屬於較大字符串的狀態代碼?

您使用的錨交替使用是不正確的, ^AB|DC$表示“以AB開頭或以DC結尾的字符串”。 為了使^$都適用於交替的每個元素,您需要將交替放在一個組中,例如^(AB|DC)$

嘗試將正則表達式更改為以下內容:

^(A[LKSZRAEP]|C[AOT]|D[EC]|F[LM]|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEHINOPST]|N[CDEHJMVY]|O[HKR]|P[ARW]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$

使用組的另一種方法是將^$作為交替元素中每個元素的一部分,例如^AB$|^DC$ ,但這會使您的正則表達式長得多,因此使用組是一種方法。

暫無
暫無

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

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