Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AANNN和ANEE格式的正则表达式模式_Java_Regex - Fatal编程技术网

Java AANNN和ANEE格式的正则表达式模式

Java AANNN和ANEE格式的正则表达式模式,java,regex,Java,Regex,我需要AANNN和ANEE格式的正则表达式模式 A表示字母 N表示数字 E表示字母或数字 我需要根据这些格式验证输入字符串 示例 BD123与AANNN G21H与ANEE 我假设您想要ASCII字母和数字,而不是泰语数字、阿拉伯语字母等 AANNN是(?i)^[a-z]{2}[0-9]{3}$ ANEE是(?i)^[a-z][0-9][a-z0-9]{2}$ 解释 ^锚定声明我们位于字符串的开头 [a-z]就是所谓的字符类。它允许a和z之间的任何字符 在一个字符类中,我们可以包含几个范

我需要
AANNN
ANEE
格式的正则表达式模式

  • A
    表示字母
  • N
    表示数字
  • E
    表示字母或数字
我需要根据这些格式验证输入字符串

示例

  • BD123
    AANNN
  • G21H
    ANEE

我假设您想要ASCII字母和数字,而不是泰语数字、阿拉伯语字母等

  • AANNN
    (?i)^[a-z]{2}[0-9]{3}$
  • ANEE
    (?i)^[a-z][0-9][a-z0-9]{2}$
  • 解释

    • ^
      锚定声明我们位于字符串的开头
    • [a-z]
      就是所谓的字符类。它允许
      a
      z
      之间的任何字符
    • 在一个字符类中,我们可以包含几个范围,这就是为什么
      E
      [a-z0-9]
    • 通常对于
      A
      您必须说出类似
      [A-zA-Z]
      的内容,但是
      (?i)
      标志使其不区分大小写
    • {2}
      是一个量词,表示“两次匹配前面的表达式”
    • $
      锚点断言我们在字符串的末尾
    如何使用

    在Java中,您可以执行以下操作:

    if (subjectString.matches("(?i)^[a-z]{2}[0-9]{3}$")) {
        // It matched!
        } 
    else {  // nah, it didn't match...  } 
    
    正则表达式很有趣!我强烈建议您从这些资源中学习

    资源

    • 堆栈溢出
    • 掌握正则表达式,第3版
    • 正则表达式食谱,第二版

    好的。你试过什么?你在哪里被卡住了?@Mena:但是Ruby有外壳,对吗?来自帮助中心:@MitchWheat nice!Ruby and Pe(a)rl encrusted。取决于OP使用的Java方法,但我希望看到锚点,否则您可能会在字符串的某个部分找到匹配项。@stema是的,您完全正确一个疏忽,在您的位置上,我将写相同的注释。修复并添加了解释,谢谢。:)谢谢您提供的信息,我也了解了这个概念,当然我会仔细阅读参考资料以了解regex模式。谢谢,很高兴它成功了!仅供参考,刚刚添加了一些Java代码。:)仅供参考:重新格式化了您的问题。请看。我认为,如果一个问题以这样清晰的方式提出来,它会有更好的机会……它被严重否决!下次见。:)