正則表達式的應用

package cn.com.burgeon.util; java

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern; sql

public class RegexUtil { 函數

 //去掉註釋
 public String takeNotes(String inString){
  Pattern p = Pattern.compile("(?ms)('(?:''|[^'])*')|--.*?$|/\\*.*?\\*/");
  return p.matcher(inString).replaceAll("$1");
 }
 
 //.fnc文件裏,分割存儲過程或函數
 public List<String> spiltFncOrProc(String inString){
  List<String> fncList=new ArrayList<String>();
  Pattern p1 = Pattern.compile("(?ms)(create.+?end\\s*?\\w*?;)\\s*?/",Pattern.CASE_INSENSITIVE);
  Matcher matcher=p1.matcher(inString);
  //List<String> ls=new ArrayList<String>();
  while(matcher.find())
   fncList.add(matcher.group(1));
  return fncList;
 }
 
 
 public String getFncName(String sqlStr){
  String fncName = "";
  Pattern p = Pattern
    .compile(
      "(?ms)create\\s+(?:or\\s+replace)?\\s+(?:PROCEDURE|FUNCTION)\\s+\"?(\\w+\\$?\\w+)\\s?(?:\\(.+\\))?",
      Pattern.CASE_INSENSITIVE);
  Matcher m = p.matcher(sqlStr);
  if (m.find()) {
   fncName = m.group(1);
  }
  return fncName;
 }
 
} get

相關文章
相關標籤/搜索