如何在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;运算; CAR; MT | 9; EC; SMO; GL | 10;做; CZT; KU |
,其中
1|dc35_custom|
已修复。3;od;CZY;GL| 2;ob;BNP;MT|
,依此类推。其中第一个字符的范围是2-11,不应重复。例如,3
出现在第一个模式中,因此不应再次出现。
答案 0 :(得分:2)
我对此做了很多假设,但这里有一个问题:
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之间的任何数字。[a-z]{2}
将匹配两个小写字母[A-Z]{3}
将匹配三个大写字母[A-Z]{2}
将匹配两个大写字母{9}
查找括在括号中的整个序列的九个连续匹配正如Amadan指出的那样,它不会检查唯一性,因为这有点超出正则表达式的范围。
答案 1 :(得分:0)
有点棘手,但你去了
正则表达式:/^1\|dc35_custom(?:\|([2-9]|1[01]);[a-z]{2};[A-Z]{1,3};[A-Z]{1,2}){9}\|$/
和单元测试:https://regex101.com/r/lU6sJ6/2(点击'单元测试'在左侧)
我假设以下内容:
3;od;CZY;GL
的第一部分是2-11之间的数字,无数字可以重复