首页 > 解决方案 > 多个可能的字符串输入的正则表达式公式验证

问题描述

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

以下是我到目前为止提供的公式,但有些部分不能按要求工作。

在此处输入图像描述

要求:-

可接受的输入字符串

样品:

 -'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

标签: regex

解决方案


你可以使用

^(?!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])正向前瞻,至少断言一个字符 AZ
    • [A-Z0-9._-]{8,16}匹配任何列出的 8-16 次
    • |或者
    • MTMBX|MTTBX|MTRBX|MTRBX|MTREJ匹配任何允许的替代方案
  • )关闭非捕获组
  • $字符串结束

正则表达式演示


推荐阅读