Regex Collection
本篇要來收集網路上或自製的Regex語法. 不定期的更新!!
2010/11/9
出處: Create Trim function in javascript by shankeyshankey 2010/11/17
出處: Trim, LTrim and RTrim Functions using Regular Expressions by Sunasara Imdadhusen |
private final static String pattern = "/(\\w*)(\\()(.*)(\\))/"; private String functionName; private String strParams; private Iterator params; private String current; private int count; /** * */ public FunctionContext(String context) { super(); // parse the name of function and the full string of parameters Perl5Util util = new Perl5Util(); PatternMatcherInput matcherInput = new PatternMatcherInput(context); boolean isMatch = util.match(pattern,matcherInput); if(!isMatch) throw new ASDException("Context format error. " + context); MatchResult result = util.getMatch(); this.functionName = result.group(1); this.strParams = result.group(3); // parse full string of parameters to iterator ArrayList paramlist = parseParams(strParams); this.params = paramlist.iterator(); this.count = paramlist.size(); // 參數總筆數 } /** * * @param strParams * @return */ private ArrayList parseParams(String strParams){ ArrayList paramlist = new ArrayList(); String[] ary = StringUtility.split(strParams,","); StringBuffer b = new StringBuffer(); int touch = 0; for (int i=0;i 出處: FunctionContext in Java by me |
出處: ParseBoolean by me |
Oracle 檢查身份證字號/統一編號
SELECT case when REGEXP_LIKE('A123456789', '^[a-zA-Z]\d{9}$') then 'true' else 'false' end as IS_PTY_ID FROM DUAL;
SELECT case when REGEXP_LIKE('23456789', '^\d{8}$') then 'true' else 'false' end as IS_COR_ID FROM DUAL;
|
不可含有 % , < , > = ... 等字元 ^((?!(\%|<|>|=)).)*$ 出處: http://stackoverflow.com/questions/406230/regular-expression-to-match-string-not-containing-a-word |
處理 SQL 中的 ORDER BY 可能的SQL Injection 問題 ((,)?(\s)*\b(IP_ID|CUST_NAME)\b(\s)*(\b(ASC|DESC)(,)?\b)?)+ |