java正則表達式實例

来源:互联网 发布:计算机编程原理 编辑:程序博客网 时间:2024/05/04 13:56

import org.apache.oro.text.regex.MatchResult;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
/*
boolean matches(String input, Pattern pattern):当输入字符串和正则表达式要精确匹配时使用。换句话说,正则表达式必须完整地描述输入字符串。
boolean matchesPrefix(String input, Pattern pattern):当正则表达式匹配输入字符串起始部分时使用。(例如正则表达式abc 匹配abc1或abc2)
boolean contains(String input, Pattern pattern):当正则表达式要匹配输入字符串的一部分时使用(即,它必须是一个子串)。
另外,在上面三个方法调用中,你还可以用PatternMatcherInput对象作为参数替代String对象;这时,你可以从字符串中最后一次匹配的位置开始继续进行匹配。当字符串可能有多个子串匹配给定的正则表达式时,用PatternMatcherInput对象作为参数就很有用了。用PatternMatcherInput对象作为参数替代String时,上述三个方法的语法如下:
boolean matches(PatternMatcherInput input, Pattern pattern)
boolean matchesPrefix(PatternMatcherInput input, Pattern pattern)
boolean contains(PatternMatcherInput input, Pattern pattern)
*/
public class Pat {
 public static void main(String[] args) {
  Pattern parttern=null;
  PatternCompiler compiler = new Perl5Compiler();
  try{
   parttern = compiler.compile("(t[aeio]n)//s//d{1,3}//.//d{1,3}//.//d{1,3}//.//d{1,3}",Perl5Compiler.CASE_INSENSITIVE_MASK);
   PatternMatcher matcher = new Perl5Matcher();
   String input  = "ffdstan 172.17.94.105fdsfds";
   if (matcher.contains(input, parttern)){
   //if (matcher.matches(input, parttern)){
    MatchResult result = matcher.getMatch();
    System.out.println("true./r/n"+result.group(1));
   }else{
    System.out.println("false");
   }
  
  }catch(Exception ex){
      ex.printStackTrace();
  }
 }
}

運行結果﹕
true.
tan
 

原创粉丝点击