簡體   English   中英

如何在JavaScript中編寫重復的Regex模式

[英]How to write repeating Regex pattern in JavaScript

如何在JavaScript中為以下模式編寫正則表達式:

1 | dc35_custom | 3; od; CZY; GL | 2; ob; BNP; MT | 4; sd; ABC; MT | 5; ih; DFT; FR | 6; oh; AQW; MT | 7; ip; CAN; MT | 8; op; CAR; MT | 9; ec; SMO; GL | 10; do; CZT; KU |

哪里

  • 第一部分1|dc35_custom| 是固定的。
  • 從第二部分開始,圖案重復9次(即3;od;CZY;GL| 2;ob;BNP;MT| ,依此類推。

其中的第一個字符為2-11,請勿重復。 例如,第3模式中出現了3 ,因此不應再次出現。

我為此做出了很多假設,但這是一個難題:

1\|dc35_custom\|(([2-9]|10|11);[a-z]{2};[A-Z]{3};[A-Z]{2}\|){9}

這個怎么運作

  • 1\\|dc35_custom\\| 只是文字文本,轉義了豎線運算符
  • ([2-9]|10|11)將匹配2到11之間的任何數字。
  • [az]{2}將匹配兩個小寫字母
  • [AZ]{3}將匹配三個大寫字母
  • [AZ]{2}將匹配兩個大寫字母
  • {9}尋找括號中整個序列的九個連續匹配項

正如Amadan指出的那樣,它不會檢查唯一性,因為這超出了正則表達式的用途。

有點棘手,但是你去了

正則表達式: /^1\\|dc35_custom(?:\\|([2-9]|1[01]);[az]{2};[AZ]{1,3};[AZ]{1,2}){9}\\|$/

和單元測試: https : //regex101.com/r/lU6sJ6/2 (點擊左側的“單元測試”)

我假設以下內容:

  1. 第一組永遠都是一樣的
  2. 模式3;od;CZY;GL的第一部分是2-11到不能重復的數字
  3. 第二部分是小寫字母az,正好是其中兩個
  4. 第三部分是大寫字母AZ,介於1和3之間({1,3}內容,如果准確,可以將其更改為{3})
  5. 第四和最后一部分在1到2個大寫字母AZ之間

暫無
暫無

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

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