2016-08-01 105 views
-1

我有以下的正則表達式:正則表達式 - 檢測兩個或更多個連續符號

^[A-Z]{2}[0-9A-Z]{1}([0-9A-Z_-]{0,38}[0-9A-Z]{1}){0,1}$ 

,用於驗證:

  • 字符串中是否有3個字符
  • 42之間
  • 只有字母,數字, - 或_可以使用
  • 前兩位是字母
  • 第三個字符不能是符號(_或 - )
  • 最後一個字符不能是一個符號(_或 - )

我需要更新的正則表達式來檢測具有相同的連續符號串( - ,__,- 或 -):

  • RR1_-1(無效)
  • RR1___1(無效)
  • RR1-1-1(VALID)

我已結束:

^[A-Z]{2}[0-9A-Z]{1}([0-9A-Z_-]{0,38}(?!(--|__|-_|_-))[0-9A-Z]{1}){0,1}$ 

但它不起作用。如何檢測兩個連續的符號?

+0

你能說清楚究竟是被禁止的嗎? –

回答

0

您必須在字符串的開頭之後插入反向查找斷言,而不是在模式的中間。之後,它應該工作,假設其餘的模式是正確的。

相關問題