首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript中编写重复的Regex模式

如何在JavaScript中编写重复的Regex模式
EN

Stack Overflow用户
提问于 2015-05-14 01:03:40
回答 2查看 280关注 0票数 0

如何在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出现在第一个模式中,因此不应该再次出现。

EN

回答 2

Stack Overflow用户

发布于 2015-05-14 01:26:04

我对此做了很多假设,但这里有个漏洞:

代码语言:javascript
复制
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的用途。

票数 2
EN

Stack Overflow用户

发布于 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 (点击左边的“单元测试”)

我假定以下几点:

  1. 第一组总是一样的
  2. 模式3;od;CZY;GL的第一部分是介于2-11之间的数字,没有一个数字可以重复。
  3. 第二部分是小写字母a-z,正好是其中的两个。
  4. 第三部分是大写字母and,介于1到3之间( {1,3},如果是精确的话,可以改为{3} )。
  5. 第四部分,也是最后一部分,介于1到2个大写字母A-Z之间。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30227641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档