2015-09-28 60 views
0

我想弄清楚用於DOW條目的可選重複模式的RegExp。
我期待所支持的模式的一個例子如下:正則表達式DOW可選重複

MON 
MON,TUE 
TUE,WED,THU 
FRI,SAT,SUN,MON 

最多可能包括所有星期幾的。
基本上每個DOW爲3個字符 - 必須爲3個字符(儘管不僅限於MON,TUE,WED可能是任何3個A-Z字符)。
如果輸入了多個DOW,並以逗號分隔,並且沒有尾隨逗號。

我嘗試了各種可能的選擇,但我似乎無法弄清楚。

您的協助/建議將不勝感激。
由於

+1

'^ [A-Z] {3}(?:,[A-Z] {3})* $'。你有什麼嘗試? –

回答

1

如果你正在尋找的是將匹配用逗號分隔的3個字母的字符串的圖案(以大寫)序列,可以使用基於分組機制,並使用限制性量詞{3}完全匹配的圖案3個字母:

^[A-Z]{3}(?:,[A-Z]{3})*$ 

demo

  • ^ - 開始Ø
  • [A-Z]{3} - 正好3個字母
  • (?:,[A-Z]{3})* - 0或多個組(由於*)逗號後3個字母序列
  • $ - 串

如果需要精確匹配信的末尾序列,您需要使用替代運算符|。例如,只匹配DOW:

^(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN))*$ 
+1

這就是我需要的。我遇到了可選的可能重複的後續3個字符條目的問題。你提供的是爲我工作。謝謝。 – Dhugalmac

+0

我仍然想請您將您嘗試的內容添加到問題中。 –

+0

我嘗試了各種各樣的事情,並使用在線RegExp測試網站對它們進行了測試。我可以得到一些,但不是我所需要的。當我感到沮喪的時候,我放棄了所有的東西,來到這裏尋找'專家'的意見。不幸的是到那時我沒有保存任何以前的嘗試。再次感謝你。 – Dhugalmac