2016-09-29 27 views
2

我想檢查是否所有由某個分度符分割的子串都是匹配模式。
這是我的模式[S][0-9]{7}[A-Z]{1,2}但它是一個元素的模式。有時候有人會在輸入框中輸入S1234567A, S0X00000B,我想檢查是否所有元素都符合該模式。在這種情況下,我的正則表達式只會因爲他找到匹配的字符串而表示沒問題。
我無法訪問源代碼,因此我可以拆分它並檢查每個元素。
有沒有辦法在正則表達式中做到這一點?正則表達式命令拆分和匹配

+0

注意'S0X00000B'實際上並不符合你的模式,我相信你想說'S0000000B' –

+0

我想'S0X​​00000B'原因應該失敗,但我的正則表達式說,這是好的,因爲另外一個是罰款:P –

+0

啊,那麼好吧,我只是想提供一個正則表達式小提琴,展示瞭如何更新正則表達式*匹配* *正確*輸入。 –

回答

2

使用附加* -quantified組錨定在開始和結束字符串整個表達式與^$

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

regex demo

詳細

  • ^ - 字符串的開始
  • S[0-9]{7}[A-Z]{1,2} - S,7位數字,兩個或一個大寫的ASCII字母
  • (?: - 在*量化組的開始:
    • , - 一個逗號(如果有的話)可以是逗號之前的空白,前添加\s*
    • \s* - 0+空格符號
    • S[0-9]{7}[A-Z]{1,2} - 見上文
  • )* - 該組的結尾處,*量詞使得它匹配零個或多個
  • $ - 字符串結尾。
+1

工程就像一個魅力。謝謝 :) –