如何在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|是固定的。3;od;CZY;GL| 2;ob;BNP;MT|等)。它的第一个字符在2-11之间,不应该重复。例如,3出现在第一个模式中,因此不应该再次出现。
发布于 2015-05-14 01:26:04
我对此做了很多假设,但这里有个漏洞:
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指出的,它不会检查唯一性,因为这有点超出regex的用途。
发布于 2015-05-14 01:25:39
有点棘手,但给你
regex:/^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之间的数字,没有一个数字可以重复。https://stackoverflow.com/questions/30227641
复制相似问题