当前位置: 首页 > 知识库问答 >
问题:

多个可能的字符串输入的正则表达式公式验证

何勇
2023-03-14

需要一些帮助来构建Regex公式以验证输入字符串。

以下是我到目前为止使用的公式,但有些部分无法按要求工作。

要求:-

可接受的输入字符串

  • 强制字符长度介于 8,16 之间
  • 必需的字符串内容字母数字,最小值为 1 个字母 --

样品:

 -'11910281 --> Not Match'    
 -'9U910281 --> Match'    
 -'BC189201 --> Match'    
 -'BC189201.01 --> Match'    
 -'BC189201_01 --> Match'      
 -'BC189201-01 --> Match'

或字符串如下

 MTMBX|MTTBX|MTRBX|MTRBX|MTREJ

不可接受的带前缀的输入字符串

 GMSS|GTSS|GRRT|REJS

共有1个答案

钱弘壮
2023-03-14

您可以使用

^(?!GMSS|GTSS|GRRT|REJS)(?:(?=[^A-Z\s]*[A-Z])[A-Z0-9._-]{8,16}|MTMBX|MTTBX|MTRBX|MTRBX|MTREJ)$

模式匹配:

  • ^字符串的开始
  • (?! GMSS|GTSS|GRRT|REJS)负前瞻性,断言没有任何替代方案
  • (?:非捕获组
    • (? =[^A-Z\s]*[A-Z])积极前瞻,断言至少一个字符A-Z
    • [A-Z0-9._-]{8,16}匹配列出的任何8-16次
    • |或者
    • MTMBX|MTTBX|MTRBX|MTRBX|MTREJ匹配任何允许的替代方案

    正则表达式演示

 类似资料:
  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 我正在为我的应用程序编写加载过程,它涉及从文件中读取数据并创建具有适当属性的适当对象。 然而,我在创建一个与这种格式匹配的正则表达式时遇到了麻烦;我已经查看了ECMAScript语法,并以以下方式创建了我的正则表达式,但它与我的测试应用程序中的字符串不匹配: 并且当在以下测试应用程序中使用它时,它无法将正则表达式与字符串匹配:

  • 我有一根下面这样的弦 现在我希望我的程序验证我的输入是否与字符串“phone”的模式相同 我做了以下工作 没奏效。我也尝试了其他的组合。什么都不起作用。 问题:1。我怎样才能做到这一点,而不使用‘模式’像上面?2.如何用图案做到这一点。我尝试了如下模式 Pattern Pattern=Pattern.compile(“(\d+)”);Matcher match=pattern.Matcher(电话

  • 我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以

  • 关于正则表达式有很多类似的问题,但我仍然对以下情况感到困惑:

  • 我想为C中的一些字符串创建一个正则表达式。 这就是我目前的情况: C中的字符串由双引号(")分隔,因此正则表达式必须由 \" \". 字符串可能不包含换行符,因此我需要执行[^\n](我想)。 字符串还可能包含双引号或反斜杠字符,如果且仅当它们被转义时。因此[\\\”](我想也是这样)。 除此之外,什么都可以。 任何帮助是非常感谢我有点迷失了如何开始写这个正则表达式。