字符串:“ A p eter说 p 看到他的 l ying e xpression“,将被验证为正确。但是,如果我只输入字符串“Apple”或“APPLE”,则验证不正确。我在这里缺少什么?
"[Aa].*? p.*? p.*? l.*? e\\S*"
答案 0 :(得分:2)
正则表达式并不适用于#34; Apple"因为[Aa]之后每个符号前面都有空格。它将适用于" A p p l e"。
答案 1 :(得分:2)
您需要删除空格,并且还需要打开不区分大小写的修饰符以执行不区分大小写的匹配。这样它就会匹配Apple
或APPLE
"(?i)a.*?p.*?p.*?l.*?e\\S*"
代码:
String s1 = "Abe peter said pan saw his lying expression";
String s2 = "Apple";
String s3 = "APPLE";
System.out.println(s1.matches("(?i)a.*?p.*?p.*?l.*?e\\S*"));
System.out.println(s2.matches("(?i)a.*?p.*?p.*?l.*?e\\S*"));
System.out.println(s3.matches("(?i)a.*?p.*?p.*?l.*?e\\S*"));
输出:
true
true
true