方法匹配不好
我不明白为什么这个正则expression式的方法返回false;
Pattern.matches("\\bi", "an is"); 我在字边界的人物!
 在Java中, matches尝试匹配整个string的模式。 
 对于String.matches , Pattern.matches和Matcher.matches ,这是正确的。 
 如果要检查string中是否有匹配项,可以使用.*\bi.* 。 在这种情况下,作为Javastring文字,它是".*\\bi.*" 。 
  java.util.regex.Matcher API链接 
-   boolean matches():尝试将整个区域与模式匹配。
 什么.*意思 
 在这里使用的点. 是一个正则expression式元字符,意味着(几乎)任何字符。  *是一个正则expression式元字符,意思是“零或多个重复”。 因此,例如, A.*B与A相匹配,接着是零或多个“any”字符,然后是B ( 参见rubular.com )。 
参考
- regular-expressions.info/重复星与加号和点匹配(几乎)任何字符
相关问题
-   .*?之间的区别 和.*为正则expression式
 请注意,两者. 和* (以及其他元字符)根据它们出现的位置可能会失去其特殊含义。  [.*]是一个字符类,可以匹配一个文字周期. 或字面星号* 。 在反斜杠的前面也会转义元字符,因此a\.b匹配"ab" 。 
- regular-expressions.info/ 字符 类和文字字符和元字符
相关的问题
  Java没有基于正则expression式的endsWith , startsWith和contains 。 您仍然可以使用matches来完成相同的事情,如下所示: 
-   matches(".*pattern.*")– 是否包含模式匹配的任何地方?
-   matches("pattern.*")– 是否开始与模式的匹配?
-   matches(".*pattern")– 它结束与模式的匹配?
  String API快速备忘单 
下面是一个快速的备忘单,列出哪些方法是基于正则expression式的,哪些不是:
-  非正则expression式方法:
-  String replace(char oldChar, char newChar)
-  String replace(CharSequence target, CharSequence replacement)
-  boolean startsWith(String prefix)
-  boolean endsWith(String suffix)
-  boolean contains(CharSequence s)
 
-  
-  正则expression式方法:
-  String replaceAll(String regex, String replacement)
-  String replaceFirst(String regex, String replacement)
-  String[] split(String regex)
-  boolean matches(String regex)
 
-  
如果使用匹配, 整个string必须匹配:
 Pattern.matches(".*\\bi.*", "an is") 
这允许前后有0个或更多个字符。 要么:
 boolean anywhere = Pattern.compile("\\bi").matcher("an is").find(); 
会告诉你是否有任何子string匹配(在这种情况下是true)。 注意,编译正则expression式然后保持它们可以提高性能。
我不明白为什么Java决定采取与Perl等语言相反的方向,这种语言多年以来一直支持正则expression式。 我扔了标准的Java正则expression式,并开始使用我自己的perl风格的Java正则expression式库称为MentaRegex 。 请参阅下面的正则expression式在Java中的意义。
方法匹配返回一个布尔值,表示我们是否有正则expression式匹配。
 matches("Sergio Oliveira Jr.", "/oliveira/i" ) => true 
方法匹配返回一个数组与匹配。 所以它不仅告诉你是否有比赛,而且还会返回匹配的组。
 match("aa11bb22", "/(\\d+)/g" ) => ["11", "22"] 
方法sub允许您使用正则expression式执行replace。
 sub("aa11bb22", "s/\\d+/00/g" ) => "aa00bb00" 
支持全局和不区分大小写的正则expression式。
 match("aa11bb22", "/(\\d+)/" ) => ["11"] match("aa11bb22", "/(\\d+)/g" ) => ["11", "22"] matches("Sergio Oliveira Jr.", "/oliveira/" ) => false matches("Sergio Oliveira Jr.", "/oliveira/i" ) => true 
允许你改变转义字符,如果你不喜欢看到这么多'\'。
 match("aa11bb22", "/(\\d+)/g" ) => ["11", "22"] match("aa11bb22", "/(#d+)/g", '#' ) => ["11", "22"]