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

问题描述 投票:0回答:3

我在Java中有这个正则表达式:

\\d[a-zA-z]

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

但是,当我将其与 17c 甚至 21 等进行匹配时,它不会导致匹配。这是我使用的代码:

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

感谢您的帮助!

java regex
3个回答
3
投票

那是因为

17c
21
不匹配
"\d[a-zA-z]?"
。该表达式匹配一位数字后跟一个字符。

尝试使用

"\d+[a-zA-z]*"
匹配一位或多位数字后跟零个或多个字符。


1
投票

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

尝试使用这个正则表达式:

[a-zA-Z]+.?

这里:

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

1
投票

可能

\d+[a-zA-Z]?
就是您要找的人?

(作为 Java 字符串加两个反斜杠)

© www.soinside.com 2019 - 2024. All rights reserved.