System.out.println(Pattern.matches("[amn]?", "a"));


该语句返回true。



System.out.println(Pattern.matches("[amn]?", "amn"));

System.out.println(Pattern.matches("[amn]?", "adef"));


这些语句返回false。

为什么呢

我对正则表达式量词“?”的理解这是。

正则表达式:X?
描述:X发生一次或根本不发生

所以说“ [amn]”? “ amn”应该返回true,因为a,m,n发生一次。
类似地在“ [amn]”中? “ adef” a仅出现一次,而m和n根本不出现。

我要去哪里错了?

最佳答案

正则表达式[amn]?匹配由amn组成的任何其他字符串。如"a",它满足此条件。

但是,amnadef以这些字母之一开头,然后继续以使“一次或根本不执行”规则不得到满足。

10-08 14:03
查看更多