如何处理给定模式的整个单词?

时间:2014-11-19 06:59:12

标签: java regex

字符串:“ A p eter说 p 看到他的 l ying e xpression“,将被验证为正确。但是,如果我只输入字符串“Apple”或“APPLE”,则验证不正确。我在这里缺少什么?

"[Aa].*? p.*? p.*? l.*? e\\S*"

2 个答案:

答案 0 :(得分:2)

正则表达式并不适用于#34; Apple"因为[Aa]之后每个符号前面都有空格。它将适用于" A p p l e"。

答案 1 :(得分:2)

您需要删除空格,并且还需要打开不区分大小写的修饰符以执行不区分大小写的匹配。这样它就会匹配AppleAPPLE

"(?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