Java正则表达式\\d[a-zA-z]?”;

Java正则表达式\\d[a-zA-z]?”;,java,regex,Java,Regex,我有一个Java正则表达式:\\d[a-zA-z] 它应该只允许字母后跟1或0个字符 但是,当我将其与17c甚至21相匹配时,结果并不匹配。这是我使用的代码: if (!(pattern.matches("\\d[a-zA-z]?"))) { Throw error...; } 谢谢你的帮助 它应该只允许字母后跟1或0个字符 尝试使用此正则表达式: [a-zA-Z]+.? 在这里: [a-zA-Z]+至少匹配一个字母(大写和小写) ?将任何字符(换行符除外)匹配零次或一次 可能

我有一个Java正则表达式:
\\d[a-zA-z]

它应该只允许字母后跟1或0个字符

但是,当我将其与17c甚至21相匹配时,结果并不匹配。这是我使用的代码:

if (!(pattern.matches("\\d[a-zA-z]?"))) {
      Throw error...;
}
谢谢你的帮助

它应该只允许字母后跟1或0个字符

尝试使用此正则表达式:

[a-zA-Z]+.?
在这里:

  • [a-zA-Z]+
    至少匹配一个字母(大写和小写)
  • 将任何字符(换行符除外)匹配零次或一次

    • 可能性\d+[a-zA-Z]?你要找的那个

      很好,那是因为
      17c
      21
      不匹配
      “\d[a-zA-z]?”
      。此表达式匹配一个数字后跟一个字符


      尝试使用
      “\d+[a-zA-z]*”
      匹配一个或多个数字,后跟零个或多个字符。

      模式
      模式
      是输入字符串吗?另外,我认为它应该只允许数字后跟1或0个字母。您只允许使用一个带有
      \d
      的数字,然后是一个字母(请注意,输入错误必须是
      [a-Za-z]
      )。要允许1+位数,请使用
      \d+