簡體   English   中英

RegExp:匹配列表中的“ 3”個單詞,不重復

[英]RegExp: Match '3' words of a list, not repeating

我做在用戶被要求寫,例如,一個列表的三個詞的應用程序(順序並不重要)。

我可以嘗試這樣的事情:

\^ [ itemA | itemB | itemC | itemD | item E | item F] {3}

但是很明顯,用戶可以寫相同項目的三倍。 有沒有辦法使用正則表達式將其歸檔並使用單個“匹配”函數對其進行求值?

我正在使用JavaScript。

感謝大伙們!


不好意思,讓我澄清一下。

我有以下屏幕:

例

因此,用戶有7個可能的答案,而他必須寫下其中的三個。

當然,這個“屏幕”有很多問題,正則表達式可以很好地評估它,但是在這個問題中,我不知道它是否足夠。

感謝大伙們。

為了檢查我是否理解,您正在嘗試驗證以下內容:

  1. 用戶剛輸入了三個項目,
  2. 每個項目都是預定義列表的成員
  3. 而且每個項目都是唯一的?

對於正則表達式而言,這不是一個很好的選擇。 您可以滿足前兩個要求,但是直接使用JavaScript或類似方法來完成第三個要求要簡單得多。

如果您確實想這樣做,可以這樣做:

^(itemA|itemB|itemC|itemD|item E|itemF) (?!\\1)(itemA|itemB|itemC|itemD|item E|itemF) (?!\\1)(?!\\2)(itemA|itemB|itemC|itemD|item E|itemF)

這會使用負前瞻

  1. 第一項必須與itemA-itemF相匹配
  2. 第二個項目必須首先匹配第一個項目,並且還必須匹配itemA-itemF
  3. 第三項必須與第一項不匹配,第二項必須不匹配,並且還必須匹配itemA-itemF。

暫無
暫無

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

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