posts - 28,  comments - 15,  trackbacks - 0

          概要

          什么是正則表達(dá)式,正則表達(dá)式用來干什么,可能會(huì)困擾一些初學(xué)者。我們都用過一些文本編輯器,例如 Word Word 為我們提供“查找—替換”功能,正則表達(dá)式就類似于 Word 的這種功能。 正則表達(dá)式 Regular Expression )就是一個(gè)字符構(gòu)成的串,它定義了一個(gè)用來搜索匹配字符串的模式。

          Java.util. Pattern

          JDK 對(duì)正則表達(dá)式的支持,來源于 java.util.Pattern 類。在 java api 中定義 Pattern 為“ A

          compiled representation of a regular expression ”,譯為“正則表達(dá)式編譯后的表現(xiàn)”。

          Java.util.Matcher

          java api 中定義 Matcher 為“ An engine that performs match operations on a character sequence by interpreting a Pattern ”,
          可以譯為“依據(jù)解釋
          Pattern 而生成的字符序列來執(zhí)行匹配操作的引擎”。 API 中,給出了典型的調(diào)用過程:

          ??????Pattern p = Pattern.compile("a*b");?? // 正則表達(dá)式

          ??????Matcher m = p.matcher("aaaaab");????? // 代匹配的字符串

          ??????boolean b = m.matches();

          正則表達(dá)式摘要

          字符集 (characters)

          字符

          含義

          x

          X 字符

          \\

          反斜線符號(hào) (\)

          \0 n

          八進(jìn)制數(shù)值 ( 其中 0<=n<=7)

          \0 nn

          八進(jìn)制數(shù)值 ( 其中 0<=n<=7)

          \0 mnn

          八進(jìn)制數(shù)值 ( 其中 0<=m<=3 0<=n<=7)

          \x hh

          十六進(jìn)制數(shù)值

          \t

          Tab 字符 (‘ \u0009' ’)

          \e

          Esc 字符 (‘ \u001B' ’)

          \n

          換行符 (‘ \u000A' ’)

          \d

          [0-9]

          \D

          [^0-9]

          \w

          [A-Z0-9]

          ?

          ?

          ?

          ?

          字符類集

          字符

          含義

          [abc]

          a , b , or c (simple class)

          [^abc]

          Any character except a , b , or c ( )

          [a-zA-Z]

          a through z or A through Z , inclusive ( 區(qū)間 )

          [a-d[m-p]]

          [a-d[m-p]]

          a through d, or m through p: [a-dm-p] ( 聯(lián)合)

          [a-z&&[def]]

          d , e , or f ( 交集 )

          [a-z&&[^bc]]

          a through z , except for b and c : [ad-z] ( 子集 )

          [a-z&&[^m-p]]

          a through z , and not m through p : [a-lq-z] ( 子集 )


          其他的正則表達(dá)式請(qǐng)參考API。

          示例

          ??????private static final String procedureREx = "(REP_(\\d{1})_(\\d{1,2})(_(\\d{1}))?)";? //正則表達(dá)式
          ?????
          ???private static ProcedureInfo getProcedureInfo(String procedure) {
          ??????? ProcedureInfo info = new ProcedureInfo();

          ??????? String procedureName = null;
          ??????? String category = null;
          ??????? String reportNo = null;
          ??????? String rowType = null;

          ??????? Pattern procPattern = Pattern.compile(procedureREx);??????//編譯正則表達(dá)式

          ??????? Matcher matcher = procPattern.matcher(procedure);?????????//匹配字符串到正則表達(dá)式

          ??????? if (matcher.find()) {????????????????????????????????????//字符串是否匹配正則表達(dá)式
          ??????????? procedureName = matcher.group(1);
          ??????????? category = matcher.group(2);?????????????????????
          ??????????? reportNo = matcher.group(3);
          ??????????? rowType = matcher.group(5);

          ??????????? info.setName(procedureName);
          ??????????? info.setCategory(Integer.parseInt(category));
          ??????????? info.setReportNo(Integer.parseInt(reportNo));

          ??????????? if (rowType != null) {
          ??????????????? info.setRowType(Integer.parseInt(rowType));
          ??????????? }

          ??????????? info.setArgs(getArgs(procedure));
          ??????????? return info;
          ??????? } else {
          ??????????? System.out.println("can't recognize procedure:" + procedure);
          ??????????? return null;
          ??????? }
          ??? }

          參考:
          http://buy.ccw.cn/htm/app/aprog/01_7_31_4.asp
          http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/package-summary.html
          http://www.javaresearch.org/article/showarticle.jsp?column=331&thread=2488

          posted on 2006-04-25 17:43 zhangxl 閱讀(764) 評(píng)論(1)  編輯  收藏 所屬分類: JAVA 基礎(chǔ)文章


          FeedBack:
          #  JAVA 正則表達(dá)式
          2007-01-22 14:39 | fafdsa
          JAVA 正則表達(dá)式 JAVA 正則表達(dá)式 JAVA 正則表達(dá)式 JAVA 正則表達(dá)式  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類(17)

          隨筆檔案(28)

          文章分類(30)

          文章檔案(30)

          相冊(cè)

          收藏夾(2)

          hibernate

          java基礎(chǔ)

          mysql

          xml

          關(guān)注

          壓力測(cè)試

          算法

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 96364
          • 排名 - 601

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 延津县| 嘉兴市| 玉门市| 新安县| 鄄城县| 綦江县| 电白县| 威海市| 嫩江县| 五台县| 石嘴山市| 道真| 钦州市| 迁安市| 宁南县| 依兰县| 尼玛县| 翁牛特旗| 沁源县| 金寨县| 洛南县| 德庆县| 曲阳县| 涟源市| 江川县| 乌苏市| 邢台市| 禹州市| 乐业县| 岳阳市| 上思县| 兰考县| 洞口县| 新丰县| 雷州市| 新沂市| 喀喇沁旗| 迁西县| 丹寨县| 泰和县| 福清市|