熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

apache的Jakarta-ORO庫 的正則表達式的使用

2013-11-23 20:16:14  來源: Java開源技術 

  apache的JakartaORO庫 的正則表達式的使用
  附件是代碼和相關文件
  package regularexpressiontestJakarta_ORO;
  
  /**
  * <p>Title: </p>
  * <p>Description: </p>
  * <p>Copyright: Copyright (c) </p>
  * <p>Company: </p>
  * @author wdz :
  * @version
  */
  
  import orgapacheoroio*;
  import orgapacheorotextregex*;
  
  public class Jakarta_OROTest {
  public Jakarta_OROTest() {
  Systemoutprintln(aaahhksjds找出第一個數字串);
  containMatch(aaahhksjds \\d+);
  
  Systemoutprintln($xaaahhksjds 找出第一個[az]{}[]{});
  containMatch($xaaahhksjds [az]{}[]{});
  
  Systemoutprintln(從 Catlog catherone cat cat catlog catherone 找出第一個cat[az]*\\s+);
  preMatch(Catlog catherone cat cat catlog catherone cat[az]*\\s+);
  
  ////找出第一個t*n
  Systemoutprintln(ten tig找出第一個t*n);
  containMatch(ten tig [az]{}[az]{});
  
  Systemoutprintln(獲得年月日);
  getDateString();
  
  // 找出所有 car*的單詞單詞分割符號是空格符號或者逗號
  Systemoutprintln(找出所有 car*的單詞單詞分割符號是空格符號或者逗號);
  cycleMatch(Catlog catherone cat cat catlog catlog catherone ((cat\\w*))\\s+);
  
  //找出所有的 擴號內的內容
  //使用 (( 和))配對使用可以進行分組
  Systemoutprintln(找出所有的 擴號內的內容);
  cycleMatch(Cuid=(guest) gid=(others) groups=(users)(floppy) [(]{}((\\w*))[)]{});
  
  //找出所有的日期字符串得月份
  //使用 (( 和))配對使用可以進行分組
  Systemoutprintln(找出所有的日期字符串的月份);
  cycleMatch(July bbb dfg*fg October (([az]{}))\\s[]{}[\\s]?[]{});
  
  
  //找出所有的 t*n
  Systemoutprintln(找出所有的 [a|e|i|o|n]{}n);
  cycleMatch(tan ten tin tonn toont[a|e|i|o|n]{}n);
  
  //找出所有的 t*n
  // 用於站位想當於文件查找得?符號
  Systemoutprintln(找出所有的 t*n);
  cycleMatch(tan ten tintonn toon((tn))[\\s|]?);
  
  //形式的社會安全號碼
  Systemoutprintln(形式的社會安全號碼);
  cycleMatch(tn toon \\d{}\\?\\d{}\\?\\d{});
  //電話號碼
  Systemoutprintln(電話號碼);
  cycleMatch(tn toon \\d{}\\?\\d{});
  
  //ip列表
  Systemoutprin猀??獡????у耈ф?慰檔????擴牥慮整?傳??????????????????????????????????????????佄???偁??????????????侰?????????偁????????????楈敢湲瑡???????????????????佄??????????????????楈敢湲瑡?????????????????俄????擴牥慮整?????????????????????佄?溜????????????????楈敢湲瑡??????????????????????楈敢湲瑡??????????????????????????????????????????????????????????????????擴牥慮整?????????????楈敢湲瑡???????????????????????????????????????????????????????癡湩??????????????擴牥慮整????????楈敢湲瑡???????????????????擴牥慮整????????????????????????????????????????????擴牥慮整??????????????????????????????????????????????????????????溜??????????????楈敢湲瑡??????????????????擴牥慮整?????????六???????????????楈敢湲瑡???????????????????????????????????????????擴牥慮整???????????????????????????????????????????????????????????????擴牥慮整??????瑨灴?栯擴牥慮整昮湡慫?潣???????擴牥慮整???????????a??? tln(ip list 獲得ip列表);
  cycleMatch(ip list \\d{}\\\\d{}\\\\d{}\\\\d{});
  
  }
  
  /***
  *
  * 獲得年月日
  * 例如 June
  * */
  private void getDateString() {
  Systemoutprintln(獲得年月日 從dsds June ksdjks 找出第一個日期);
  containMatch( dsds June ksdjks
  [az]+\\s[]{}\\s[]{});
  Systemoutprintln(獲得年月日 從June asdsds June ksdjks 找出第一個日期);
  containMatch(June asdsds June ksdjks
  [\\s]?[az]+\\s[]{}\\s[]{});
  }
  
  /***
  * 前綴方式的匹配
  * @param inputValue 被匹配查找得對想
  * @param reg 匹配規則
  * **/
  private void preMatch(String inputValue String reg) {
  PatternCompiler compiler = new PerlCompiler();
  PatternMatcher matcher = null;
  Pattern pattern = null;
  String input = inputValue;
  String regexp = reg;
  try {
  pattern = pile(regexp PerlCompilerCASE_INSENSITIVE_MASK);
  matcher = new PerlMatcher();
  if (matchermatchesPrefix(input pattern)) {
  MatchResult result = matchergetMatch();
  Systemoutprintln(result = + resultgroup());
  //Systemoutprintln(result =+resultgroup());
  }
  }
  catch (MalformedPatternException e) {
  Systemerrprintln(preMatchBad pattern);
  Systemerrprintln(egetMessage());
  Systemexit();
  }
  }
  
  /***
  * 包含方式的匹配
  * @param inputValue 被匹配查找得對想
  * @param reg 匹配規則
  * **/
  private void containMatch(String inputValue String reg) {
  // Systemoutprintln(containMatch);
  PatternCompiler compiler = new PerlCompiler();
  PatternMatcher matcher = null;
  Pattern pattern = null;
  String input = inputValue;
  String regexp = reg;
  try {
  pattern = pile(regexp PerlCompilerCASE_INSENSITIVE_MASK);
  matcher = new PerlMatcher();
  if (ntains(input pattern)) {
  MatchResult result = matchergetMatch();
  Systemoutprintln(result = + resultgroup());
  // Systemoutprintln(result =+resultgroup());
  }
  }
  catch (MalformedPatternException e) {
  Systemerrprintln(containMatch Bad pattern);猀??獡????
  Systemerrprintln(egetMessage());
  Systemexit();
  }
  }
  /***
  * 循環方式的匹配
  * 使用 (( 和))配對使用可以進行分組
  * @param inputValue 被匹配查找得對想
  * @param reg 匹配規則
  * **/
  private void cycleMatch(String inputValue String regfinal int groupid){
  orgapacheorotextregexPatternCompiler compile = new PerlCompiler();
  try {
  Pattern p = pile(regPerlCompilerCASE_INSENSITIVE_MASK);
  PatternMatcherInput input = new PatternMatcherInput(inputValue);
  orgapacheorotextregexPerlMatcher pm = new PerlMatcher();
  MatchResult result =null;
  int i=;
  while(ntains(inputp)){
  result = pmgetMatch();
  Systemoutprintln(result = + resultgroup(groupid));
  inputsetBeginOffset(resultlength());
  i++;
  }
  Systemoutprintln(總共匹配+i+);
  }
  catch (Exception ex) {
  Systemerrprintln(循環方式的匹配發生錯誤+exgetMessage());
  }
  }
  
  public static void main(String[] args) {
  Jakarta_OROTest jakarta_OROTest = new Jakarta_OROTest();
  }
  
  }
  

From:http://tw.wingwit.com/Article/program/Java/ky/201311/28214.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.