鷹翔宇空

          學(xué)習(xí)和生活

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks
          引自:http://www.aygfsteel.com/zhugf000/archive/2005/12/12/23414.html

          目錄

          正則表達(dá)式介紹
          匹配模式

          字符子集
          行結(jié)束符
          分組和引用
          Unicode支持


          正則表達(dá)式語(yǔ)法參考
          1. 字符
          2. 邏輯操作符
          3. 向后引用
          4. 邊界元字符
          5. 重復(fù)指示符
          6. 字符子集
          7. 預(yù)定義子集(元字符)
          8. 擴(kuò)展子集(元字符)
          9. 擴(kuò)展中文子集(元字符)
          10. POSIX字符子集(只適用于ASCII)
          11. Unicode塊和分類(lèi)

          替換表達(dá)式
          替換表達(dá)式
          1. 特殊字符
          2. 自定義替換表

          匹配模式

          匹配模式指得是正則表達(dá)式引擎將以何種模式匹配字符串。
          模式名稱(chēng)
          啟用,禁用
          缺省啟用
          說(shuō)明
          UNIX_LINES
          (?d)啟用,(?-d)禁用

          啟用Unix行模式。
          在此模式下,只有 '\n'被認(rèn)為是行結(jié)束符。它會(huì)影響., ^, 和 $ 的行為。

          CASE_INSENSITIVE
          (?i)啟用,(?-i)禁用

          啟用忽略大小寫(xiě)模式。
          缺省時(shí),忽略大小寫(xiě)模式只會(huì)影響 ASCII字符的匹配。 而Unicode范圍的忽略大小寫(xiě)匹配需要通過(guò) UNICODE_CASE 標(biāo)志與本標(biāo)志聯(lián)合使用。
          啟用此模式會(huì)影響匹配性能。

          COMMENTS
          (?x)啟用,(?-x)禁用

          允許空格和注釋出現(xiàn)在正則表達(dá)式中。
          在此模式下,空格被忽略,以#開(kāi)始的單行注釋被忽略。
          MULTILINE
          (?m)啟用,(?-m)禁用

          啟用多行模式。
          In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence.

          DOTALL
          (?s)啟用,(?-s)禁用

          讓.可以匹配行結(jié)束符。
          在此模式下,元字符.可以匹配行結(jié)束符。缺省不允許如此匹配。


          UNICODE_CASE
          (?u)啟用,(?-u)禁用

          Enables Unicode-aware case folding.
          When this flag is specified then case-insensitive matching, when enabled by the CASE_INSENSITIVE flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. 啟用此模式會(huì)影響性能。

          CANON_EQ
          (?c)啟用,(?-c)禁用

          Enables canonical equivalence.
          When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a\u030A", for example, will match the string "?" when this flag is specified. By default, matching does not take canonical equivalence into account.
          啟用此模式會(huì)影響性能。



          字符子集

          字符子集可以含有別的字符子集,并且可以通過(guò)聯(lián)合操作符(缺省)和交集操作符(&&)實(shí)現(xiàn)組合。聯(lián)合操作符表示某個(gè)子集匹配它的子子集所匹配的任意字符。交集操作符表明某個(gè)字符子集只匹配它的子子集都匹配的字符。
          字符子集所能夠有的操作符的優(yōu)先級(jí)如下,從高到低:
          1. 轉(zhuǎn)義符\x
          2. 成組符 [...]
          3. 區(qū)間符 a-z
          4. 聯(lián)合符 [a-e][i-u]
          5. 交集符 [a-z&&[aeiou]]
          注意:在字符子集[]內(nèi)部的語(yǔ)法根本不同于正則表達(dá)式其它部分中的語(yǔ)法。例如,在字符子集內(nèi)部,正則表達(dá)式 . 失去了它原有的含義,而是成了一個(gè)匹配.的元字符。

          行結(jié)束符

          行結(jié)束符是一個(gè)或兩個(gè)字符序列,用以表明輸入字符序列中一行的結(jié)束。下面的字符被認(rèn)為是行結(jié)束符:
          • 一個(gè)換行符('\n')。
          • 一個(gè)回車(chē)符加上一個(gè)換行符("\r\n")。
          • 一個(gè)單獨(dú)的回車(chē)符('\r')。
          • 代表下一行的字符('\u0085')。
          • 行分隔符('\u2028'),Unicode中被定義。
          • 一個(gè)分段符('\u2029),Unicode中被定義。
          如果 UNIX_LINES 模式被啟用,則只有換行符被認(rèn)為是行結(jié)束符。
          如果 MULTILINE 模式被啟用,。

          分組和引用

          字符分組以它們的左括號(hào)的出現(xiàn)順序來(lái)排序。例如在表達(dá)式((A)(B(C))),有四個(gè)分組:
          1. ((A)(B(C)))
          2. (A)
          3. (B(C))
          4. (C)
          第0組永遠(yuǎn)表示表達(dá)式本身。
          分組采用這樣的命名方式,是因?yàn)椋谝淮纹ヅ溥^(guò)程中,正則表達(dá)式會(huì)被匹配多次。以前的匹配子序列有可能在將來(lái)被使用;或者在匹配結(jié)束時(shí),程序有可能需要重新獲得所有匹配的子字符序列。
          對(duì)于正則表達(dá)式中的某個(gè)分組而言,永遠(yuǎn)只保留最后匹配的字符序列。如果對(duì)某個(gè)分組匹配嘗試失敗,則會(huì)保留上次匹配成功的字符序列。例如,對(duì)于正則表達(dá)式(a(b)?)+而言,字符序列"aba",將會(huì)讓分組2匹配的字符序列為"b"。
          以(?開(kāi)始的分組,將不會(huì)計(jì)入分組數(shù)目,也不會(huì)被后續(xù)匹配所引用。

          Unicode支持

          本正則表達(dá)式匹配引擎的實(shí)現(xiàn)遵循了《Unicode技術(shù)報(bào)告:Unicode正則表達(dá)式指南》,實(shí)現(xiàn)了該指南的第二層所需的功能,但是在細(xì)微處有一些簡(jiǎn)單語(yǔ)法修改。
          Unicode塊(Block)和分類(lèi)(Category)通過(guò)\p和\P通配苻表示。\p{prop}匹配含有prop的輸入序列,而\P{prop}匹配不含有prop的輸入序列。Unicode塊通過(guò)前綴In表示,如\p{InMongolian}。Unicode分類(lèi)通過(guò)可選的前綴Is表示,因此\p{L}和\p{IsL}都代表Unicode分類(lèi) letters。Unicode塊和分類(lèi)都可以在正則表達(dá)式子集外部和內(nèi)部使用。
          目前支持的Unicode塊和分類(lèi)是《Unicode標(biāo)準(zhǔn),第三版》中所指定的塊和分類(lèi)。 Unicode塊名稱(chēng)在《Unicode 字符數(shù)據(jù)庫(kù)》的第14章被定義,文件名稱(chēng)叫Blocks-3.txt,但是名稱(chēng)中的空格被去掉了。例如"Basic Latin"成了"BasicLatin"。無(wú)論是標(biāo)準(zhǔn)化的還是非標(biāo)準(zhǔn)化的分類(lèi),都在該標(biāo)準(zhǔn)的第88頁(yè)的第4-5表中被全部定義。

          與Perl 5正則表達(dá)式語(yǔ)法對(duì)比

          [TBD]


          正則表達(dá)式參考



          字符

          正則表達(dá)式字符串
          匹配的字符串
          X
          字符X,包括 CJK ExtB 區(qū)漢字
          \\
          反斜杠\
          \0n八進(jìn)制0n代表的字符(0<=n<=7)
          \0nn
          八進(jìn)制0nn代表的字符(0<=n<=7)
          \0mnn
          八進(jìn)制0mnn代表的字符(0<=m<=3,0<=n<=7)
          \xhh
          十六進(jìn)制 0xhh所代表的字符
          \uhhhh
          十六進(jìn)制 0xhhhh所代表的字符。注意,目前尚不支持CJK ExtB區(qū)漢字。
          \t
          制表符('\u0009')
          \n
          換行('\u000A')
          \r
          回車(chē)('\u000D')
          \a
          響鈴符('\u0007')
          \e
          取消符Escape('\001B')
          \cx
          x所代表的控制字符

          邏輯操作符

          正則表達(dá)式字符串
          匹配的字符串
          XY
          X后面跟隨Y
          X|Y
          X或者Y
          (X)
          X作為分組表達(dá)式

          向后引用

          正則表達(dá)式字符串
          匹配的字符串
          \n
          n個(gè)匹配的分組

          邊界元字符

          邊界字符
          匹配的字符串
          ^
          行首
          $
          行末
          \b 字符邊界
          \B
          非字符邊界
          \A
          輸入流的開(kāi)始
          \G
          上次匹配的結(jié)束處
          \Z
          輸入流的結(jié)束,或者是最后一個(gè)行結(jié)束符,參見(jiàn)行結(jié)束符
          \z
          輸入流的結(jié)束

          重復(fù)指示符

          正則表達(dá)式字符串
          匹配的字符串
          X?
          X重復(fù)一次,或者不重復(fù)
          X*
          X重復(fù)0次或多次
          X+
          X重復(fù)1次或多次
          X{n}
          X重復(fù)n次,不多也不少。
          X{n,}
          X至少重復(fù)n次
          X{n,m}
          X至少重復(fù)n次,至多重復(fù)m次。
          注:X{n,m}、?、*、+方式可以聯(lián)合使用。

          字符子集

          正則表達(dá)式字符串子集
          匹配的字符串
          組合方式
          [abc]
          字符a,b或c,包括 CJK ExtB 區(qū)漢字
          簡(jiǎn)單子集
          [^abc]
          任意非a,b或c的字符。
          排除
          [a-zA-Z] 從a到z,或者A到Z,包含a,z,A,Z。
          區(qū)間
          [a-d[m-p]]
          從a到d,或者m到p,等于[a-dm-p]。
          聯(lián)合
          [a-z&&[def]]
          d,e或者f。
          交集
          [a-z&&[^bc]]
          從a到z,除了b和c,等于[ad-z]
          扣除
          [a-z&&[^m-p]]
          從a到z,并且不包括從m到p,等于[a-lq-z]
          扣除

          預(yù)定義子集(元字符)

          邊界字符
          匹配的字符串
          .
          任意字符,可能匹配行結(jié)束符。
          \d
          數(shù)字[0-9]
          \D 非數(shù)字[^0-9]
          \s
          空白符[ \t\n\x0B\f\r]
          \S
          非空白符[^\s]
          \w
          單詞符,包含有字母和數(shù)字[a-zA-Z_0-9]
          \W
          非單詞符,不包含有字母和數(shù)字。

          擴(kuò)展子集(元字符)

          正則表達(dá)式字符串
          匹配的字符串




          擴(kuò)展中文子集(元字符)

          名稱(chēng)
          塊名稱(chēng)(\p{InXXX})
          簡(jiǎn)化通配符
          標(biāo)準(zhǔn)Unicode塊,或者漢字列表
          任意雙字節(jié)字符(漢字或全角符號(hào))
          \p{InQuqnJiao}
          \E
          任意由GBK表示的漢字,不包括GB18030擴(kuò)展部分,
          以及CJK ExtB區(qū)的漢字。
          任意單字節(jié)字符
          \p{InFQuanJiao}
          \~E
          任意單字節(jié)字符。
          任意全角ASCII字符
          \p{InQJAscii}
          \H
          標(biāo)準(zhǔn)HalfwidthandFullwidthForms塊
          任意收錄在BIG5碼集中的雙字節(jié)字符
          \p{InBig5}
          \I
          Big5可編碼雙字節(jié)字符
          匹配未收錄在BIG5碼集中的雙字節(jié)字符\p{InFBig5}
          \~I
          非Big5可編碼雙字節(jié)字符
          匹配任意漢字(不包括符號(hào))
          \p{InHanziOrCJKExtB}
          \X
          任意漢字,包括GB18030擴(kuò)展部分。
          匹配任意漢字(不包括符號(hào))
          \p{InHanzi}
          \M
          任意漢字,不包括GB18030擴(kuò)展部分。
          匹配非漢字的雙字節(jié)字符
          \p{InFHanzi}
          \~M
          任意非漢字的雙字節(jié)字符,
          包括GB18030擴(kuò)展部分。
          地支字符
          \p{InDiZhi}
          \U
          子丑寅卯辰巳午未申酉戌亥
          匹配收錄在GB碼集中的雙字節(jié)字符
          \p{InGB}
          \g
          收錄在GB碼集中的雙字節(jié)字符,
          不包括GB18030擴(kuò)展部分。
          匹配非收錄在GB碼集中的雙字節(jié)字符
          \p{InFGB}
          \~g
          未收錄在GB碼集中的雙字節(jié)字符,
          不包括GB18030擴(kuò)展部分。
          匹配收錄在GBK碼集中的雙字節(jié)字符
          \p{InGBK}
          \h
          收錄在GBK碼集中的雙字節(jié)字符,
          不包括GB18030擴(kuò)展部分。
          匹配非收錄在GBK碼集中的雙字節(jié)字符
          \p{InFGBK}
          \~h
          未收錄在GBK碼集中的雙字節(jié)字符,
          不包括GB18030擴(kuò)展部分。
          大寫(xiě)希臘字母
          \p{InDaXila}
          \K
          ΑΒΓΔΕΖΗΘΙΚΛΜΝ
          ΞΟΠΡΣΤΥΦΧΨΩ
          日文片假名
          \p{InPianJia}
          \j
          標(biāo)準(zhǔn)Katakana塊
          日文平假名
          \p{InPingJia}
          \J
          標(biāo)準(zhǔn)Hiragana塊
          小寫(xiě)希臘字母
          \p{InXiaoXila}
          \k
          αβγδεζηθικλμν
          ξοπρστυφχψω
          數(shù)學(xué)符號(hào)
          \p{InMathe}
          \m
          ±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙
          ∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴
          中文數(shù)字
          \p{InCnDigit}
          \i
          〇一二三四五六七八九十百千萬(wàn)億兆吉京
          大寫(xiě)中文數(shù)字
          \p{InDaCnDigit}
          \N
          零壹貳叁肆伍陸柒捌玖拾佰仟萬(wàn)億兆吉京
          全角標(biāo)點(diǎn)符號(hào)
          \p{InQJBiaoDian}
          \o
          、。·ˉˇ¨〃々—~‖…‘’“”〔〕
          〈〉《》「」『』〖〗【】!"'(),
          -.:;<=>?[]{|}`﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚
          ﹛﹜﹝﹞︵︶︹︺︿﹀︽︾﹁﹂﹃﹄
          ︻︼︷︸︱︳︴
          小寫(xiě)俄文字母
          \p{InXiaoEWen}
          \l
          абвгдеёжзийклмн
          опрстуфхцчшщъыьэюя
          大寫(xiě)俄文字母
          \p{InDaEWen}
          \R
          АБВГДЕЁЖЗИЙКЛМНО
          ПРСТУФХЦЧШЩЪЫЬЭЮЯ
          中文序號(hào)
          \p{InCnSN}
          \q
          ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ
          ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ
          再加上Unicode標(biāo)準(zhǔn)EnclosedAlphanumerics塊
          天干字符
          \p{InTianGan}
          \T
          甲乙丙丁戊己庚辛壬癸
          豎排標(biāo)點(diǎn)符號(hào)
          \p{InSPBiaoDian}
          \V
          ︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴
          拼音字符
          \p{InPinyin}
          \y
          āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ
          GBK -> 0xA8A1- 0xA8C0
          只是Unicode標(biāo)準(zhǔn)LatinExtended-A塊的一部分。
          注音字符
          \p{InZhuyin}
          \Y
          標(biāo)準(zhǔn)Bopomofo塊
          制表字符
          \p{InZhiBiao}
          \C
          標(biāo)準(zhǔn)BoxDrawing塊。
          經(jīng)檢查發(fā)現(xiàn) textpro 的算法含有部分非標(biāo)
          準(zhǔn)Unicode制表符:“∟∣≒≦≧⊿═”。

          POSIX字符子集(只適用于ASCII)

          正則表達(dá)式字符串
          匹配的字符串
          \p{Lower}
          小寫(xiě)字母[a-z]
          \p{Upper}
          大寫(xiě)字母[A-Z]
          \p{ASCII}
          所有的ASCII字符[\x00-\x7F]
          \p{Alpha}
          大小寫(xiě)字母[\p{Lower}\p{Upper}]
          \p{Digit}
          數(shù)字[0-9]
          \p{Alnum}
          字母數(shù)字符,包含大小寫(xiě)字母和數(shù)字[\p{Alpha}\p{Digit}]
          \p{Punct}
          標(biāo)點(diǎn)符號(hào),!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~之一。
          \p{Graph}
          可顯示字符[\p{Alnum}\p{Punct}]
          \p{Print}
          可打印字符[\p{Graph}]
          \p{Blank}
          空格或者制表符[ \t]
          \p{Cntrl}
          控制字符[\x00-\x1F\x7F
          \p{XDigit}
          十六進(jìn)制數(shù)字[0-9a-fA-F]
          \p{Space}
          空白符[ \t\n\x0B\f\r]

          Unicode塊和分類(lèi)


          中文名稱(chēng)(摘自Word XP)
          代碼區(qū)域
          BasicLatin
          基本拉丁語(yǔ)
          \u0000-\u007F
          Latin-1Supplement
          拉丁語(yǔ)-1
          \u0080-\u00FF
          LatinExtended-A
          拉丁語(yǔ)擴(kuò)充-A
          \u0100-\u017F
          LatinExtended-Bound
          拉丁語(yǔ)擴(kuò)充-B
          \u0180-\u024F
          IPAExtensions
          國(guó)際音標(biāo)擴(kuò)充
          \u0250-\u02AF
          SpacingModifierLetters
          進(jìn)格的修飾字符
          \u02B0-\u02FF
          CombiningDiacriticalMarks
          組合用發(fā)音符
          \u0300-\u036F
          Greek
          基本希臘語(yǔ)
          \u0370-\u03FF
          Cyrillic
          西里爾語(yǔ)
          \u0400-\u04FF
          Armenian

          \u0530-\u058F
          Hebrew

          \u0590-\u05FF
          Arabic

          \u0600-\u06FF
          Syriac

          \u0700-\u074F
          Thaana

          \u0780-\u07BF
          Devanagari

          \u0900-\u097F
          Bengali

          \u0980-\u09FF
          Gurmukhi

          \u0A00-\u0A7F
          Gujarati

          \u0A80-\u0AFF
          Oriya

          \u0B00-\u0B7F
          Tamil

          \u0B80-\u0BFF
          Telugu

          \u0C00-\u0C7F
          Kannada

          \u0C80-\u0CFF
          Malayalam

          \u0D00-\u0D7F
          Sinhala

          \u0D800-\uDFF
          Thai

          \u0E00-\u0E7F
          Lao

          \u0E80-\u0EFF
          Tibetan
          藏語(yǔ)
          \u0F00-\u0FFF
          Myanmar

          \u1000-\u109F
          Georgian

          \u10A0-\u10FF
          HangulJamo

          \u1100-\u11FF
          Ethiopic

          \u1200-\u137F
          Cherokee

          \u13A0-\u13FF
          UnifiedCanadianAboriginalSyllabics

          \u1400-\u167F
          Ogham

          \u1680-\u169F
          Runic

          \u16A0-\u16FF
          Khmer

          \u1780-\u17FF
          Mongolian
          蒙古語(yǔ)
          \u1800-\u18AF
          LatinExtendedAdditional

          \u1E00-\u1EFF
          GreekExtended

          \u1F00-\u1FFF
          GeneralPunctuation
          廣義標(biāo)點(diǎn)
          \u2000-\u206F
          SuperscriptsandSubscripts

          \u2070-\u209F
          CurrencySymbols
          貨幣符號(hào)
          \u20A0-\u20CF
          CombiningMarksforSymbols

          \u20D0-\u20FF
          LetterlikeSymbols
          類(lèi)似字母的符號(hào)
          \u2100-\u214F
          NumberForms
          數(shù)字形式
          \u2150-\u218F
          Arrows
          箭頭
          \u2190-\u21FF
          MathematicalOperators
          數(shù)學(xué)運(yùn)算符
          \u2200-\u22FF
          MiscellaneousTechnical
          零雜技術(shù)用符號(hào)
          \u2300-\u23FF
          ControlPictures

          \u2400-\u243F
          OpticalCharacterRecognition

          \u2440-\u245F
          EnclosedAlphanumerics
          帶括號(hào)的字母數(shù)字
          \u2460-\u24FF
          BoxDrawing
          制表符
          \u2500-\u257F
          BlockElements
          方塊圖形
          \u2580-\u259F
          GeometricShapes
          幾何圖形
          \u25A0-\u25FF
          MiscellaneousSymbols
          零雜丁貝符(示意符等)
          \u2600-\u26FF
          Dingbats

          \u2700-\u27BF
          BraillePatterns

          \u2800-\u28FF
          CJKRadicalsSupplement

          \u2E80-\u2EFF
          KangxiRadicals

          \u2F00-\u2FDF
          IdeographicDescriptionCharacters

          \u2FF0-\u2FFF
          CJKSymbolsandPunctuation
          CJK符號(hào)和標(biāo)點(diǎn)
          \u3000-\u303F
          Hiragana
          平假名
          \u3040-\u309F
          Katakana
          片假名
          \u30A0-\u30FF
          Bopomofo
          注音
          \u3100-\u312F
          HangulCompatibilityJamo

          \u3130-\u318F
          Kanbun

          \u3190-\u319F
          BopomofoExtended
          擴(kuò)展注音
          \u31A0-\u31BF
          EnclosedCJKLettersandMonths
          帶括號(hào)的CJK字母及月份
          \u3200-\u32FF
          CJKCompatibility
          CJK兼容字符
          \u3300-\u33FF
          CJKUnifiedIdeographsExtensionA
          CJK統(tǒng)一漢字?jǐn)U展-A
          \u3400-\u4dBF
          CJKUnifiedIdeographs
          CJK統(tǒng)一漢字
          \u4E00-\u9fAF
          YiSyllables

          \uA000-\uA48F
          YiRadicals

          \uA490-\uA4CF
          HangulSyllables

          \uAC00-\uD7A3
          HighSurrogates

          \uD800-\uDB7F
          HighPrivateUseSurrogates

          \uDB80-\uDBFF
          LowSurrogates

          \uDC00-\uDFFF
          PrivateUse
          專(zhuān)用區(qū)
          \uE000-\uF8FF
          CJKCompatibilityIdeographs
          CJK兼容漢字
          \uF900-\uFAFF
          AlphabeticPresentationForms

          \uFB00-\uFB4F
          ArabicPresentationForms-A

          \uFB50-\uFDFF
          CombiningHalfMarks

          \uFE20-\uFE2F
          CJKCompatibilityForms
          CJK兼容形式
          \uFE30-\uFE4F
          SmallFormVariants
          小寫(xiě)變體
          \uFE50-\uFE6F
          ArabicPresentationForms-Bound

          \uFE70-\ufeFF
          Specials

          \uFFF0-\uFFFF
          HalfwidthandFullwidthForms
          半形及全形字符
          \uFF00-\uFFEF


          分類(lèi)
          全稱(chēng)
          說(shuō)明
          Cn

          UNASSIGNED
          Lu

          UPPERCASE_LETTER
          Ll

          LOWERCASE_LETTER
          Lt

          TITLECASE_LETTER
          Lm

          MODIFIER_LETTER
          Lo

          OTHER_LETTER
          Mn

          NON_SPACING_MARK
          Me

          ENCLOSING_MARK
          Mc

          COMBINING_SPACING_MARK
          Nd

          DECIMAL_DIGIT_NUMBER
          Nl

          LETTER_NUMBER
          No

          OTHER_NUMBER
          Zs

          SPACE_SEPARATOR
          Zl

          LINE_SEPARATOR
          Zp

          PARAGRAPH_SEPARATOR
          Cc

          CNTRL
          Cf

          FORMAT
          Co

          PRIVATE_USE
          Cs

          SURROGATE
          Pd

          DASH_PUNCTUATION
          Ps

          START_PUNCTUATION
          Pe

          END_PUNCTUATION
          Pc

          CONNECTOR_PUNCTUATION
          Po

          OTHER_PUNCTUATION
          Sm

          MATH_SYMBOL
          Sc

          CURRENCY_SYMBOL
          Sk

          MODIFIER_SYMBOL
          So

          OTHER_SYMBOL
          L

          LETTER
          M

          MARK
          N

          NUMBER
          Z

          SEPARATOR
          C

          CONTROL
          P

          PUNCTUATION
          S

          SYMBOL
          LD

          LETTER_OR_DIGIT
          L1

          Latin-1
          all

          ALL
          ASCII

          ASCII
          Alnum

          字母數(shù)字(0-9,a-z,A-Z)
          Alpha

          字母(a-z,A-Z)
          Blank

          空格和制表符(' '|\t)
          Cntrl

          控制字符,不可打印
          Digit

          數(shù)字(0-9)
          Graph

          可打印且可視字母(例如空格' '是可打印的但不是可視字母,而 `a' 兩者都是。)
          Lower

          小寫(xiě)字母
          Print

          可打印字母(非控制字符)
          Punct

          標(biāo)符號(hào)(字母、數(shù)字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。
          Space

          空白符(' ',\t,0x09,0x0A,0x0B,0x0C,0x0D,0x20)
          Upper

          大寫(xiě)字母
          XDigit

          十六進(jìn)制數(shù)字(0-9,a-f, A-F)





          替換表達(dá)式

          特殊字符
          特殊字符介紹
          描述
          \n
          換行
          \b
          向前刪除一個(gè)字符。當(dāng)這個(gè)字符位于替換串之首時(shí),將刪除匹配串之前的一個(gè)字符。若匹配串位于行首,將使匹配串所在行與前一行相合并。
          \d
          向后刪除一個(gè)字符。當(dāng)這個(gè)字符位于替換串之末時(shí),將刪除匹配串之后的一個(gè)字符。若匹配串位于行末,將使匹配串所在行與下一行相合并。
          \e
          插入一個(gè)ESC字符
          \t
          插入一個(gè)TAB字符
          \n
          n代表查找正則表達(dá)式中的子表達(dá)式(組)。\1代表第一個(gè)子表達(dá)式,\2代表第二個(gè)子表達(dá)式,依次類(lèi)推。\0代表整個(gè)匹配到的字符串。
          \v
          大寫(xiě)下一個(gè)字母
          \U
          全部大寫(xiě)以后的字母,直到碰到其它指示符為止。
          \l
          小寫(xiě)下一個(gè)字母
          \L
          全部小寫(xiě)以后的字母,直到碰到其它指示符為止。
          \E
          取消所有的字母大小寫(xiě)指示符。


          自定義替換表

          在查找/替換中使用自定義替換表
          有的時(shí)候,上述簡(jiǎn)單的自定義替換功能是不夠的。例如,用戶(hù)可能希望只把出現(xiàn)在括號(hào)內(nèi)的源串替換為目標(biāo)串。這種文本處理可以通過(guò)在查找/替換中使用自定義替換表來(lái)解決。

          在查找/替換功能中使用自定義替換表的替換函數(shù)是\Tn,其中n是0-9的數(shù)字, 注意n為0表示第10張?zhí)鎿Q表。如果略去n,其效果相當(dāng)于\T1,即使用第一張?zhí)鎿Q表。例如要把所有放在方括號(hào)中的漢字替換為拼音,可以查找“\[(\E)\]”,替換為“\T{\1}”。即把第一個(gè)子表達(dá)式的匹配內(nèi)容按自定義替換表轉(zhuǎn)換。注意,如果\T函數(shù)的參數(shù)不在替換表的源串中,\T函數(shù)的結(jié)果與源串相同,即不做任何變換。

          有些情況下,用戶(hù)可能希望只使用替換表的一部分內(nèi)容。還是以拼音為例,前面給出的替換表中包含了拼音的音調(diào),如果在替換時(shí)不希望加上這些音調(diào)數(shù)字,可以使用“過(guò)濾”功能。所謂過(guò)濾,其實(shí)是用一個(gè)正則表達(dá)式去分析替換表的目標(biāo)串,并把其中的某個(gè)子表達(dá)式取出來(lái)。

          使用“過(guò)濾”時(shí),在“設(shè)置自定義替換表”對(duì)話框中,點(diǎn)“過(guò)濾”按鈕,在彈出的對(duì)話框中填入一個(gè)正則表達(dá)式。再以拼音為例,表達(dá)式可以寫(xiě)為“(\p{Alpha}+)(\d)”,其中第一對(duì)括號(hào)中的是不含音調(diào)的拼音,第二對(duì)括號(hào)是音調(diào)。在調(diào)用\T函數(shù)時(shí),JTextPro會(huì)在目標(biāo)串中查找這個(gè)正則表達(dá)式。但是如何把其中的子表達(dá)式取出來(lái)呢?\T函數(shù)還有一個(gè)可選的下標(biāo),取第n個(gè)子表達(dá)式的值就寫(xiě)作\T{...}[n]。所以,把放在方括號(hào)中的漢字替換為不帶調(diào)的拼音,可以查找“\[(\E)\]”,替換為“\T{\1}[1]”
          posted on 2006-01-13 12:43 TrampEagle 閱讀(1046) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java
          主站蜘蛛池模板: 郧西县| 涡阳县| 泗洪县| 九龙县| 额尔古纳市| 呼伦贝尔市| 蓝田县| 南开区| 顺义区| 曲麻莱县| 芷江| 遂平县| 保定市| 大关县| 如东县| 车险| 淮北市| 花莲市| 句容市| 福泉市| 黄浦区| 固始县| 错那县| 乐亭县| 军事| 镇赉县| 林甸县| 穆棱市| 资溪县| 仙游县| 安丘市| 砀山县| 盐亭县| 名山县| 福清市| 桃园市| 大冶市| 张家川| 田东县| 左权县| 古丈县|