我下面的正则表达式应该过滤掉长度为 8-10 的大写单词,其中可能出现 0-2 个数字。它一直适用于我的所有测试,但由于某种原因,它卡在了下面的字符串上。并且n.group(0)
只包含一个空字符串而不是匹配的“单词”。
static final Pattern PATTERN =
Pattern.compile("\\b(?=[A-Z\\d]{9,10}\\b)(?:[A-Z]*\\d){0,2}[A-Z]*\\b");
Matcher n = LONG_PASSWORD.matcher("foo ID:636152727 bar");
while (n.find()) {
String s = n.group(0);
resultArrayList.add(s);
}
为什么我的模式匹配ID:636152727
?
我想过滤掉的一些例子(这是有效的):
- 啊啊啊啊啊
- 1啊啊啊啊
- 1AAAAAAA1
ETC...