|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-03-15, 11:27 PM | #1 (permalink) |
榮譽會員
|
正則表達在一般文本編輯軟體中的使用說明
很多文本編輯器, 譬如UltraEdit, EditPlus, EmEditor等, 都支持比較基本的正則表達 (Regular Expression). 使用正則表達能方便地搜尋符合一定模式的字元串, 並能進行靈活的替換. 熟練運用正則表達能極大提高某些文本操作的效率. 本貼以UltraEdit支持正則表達為例, 對基本的正則表達做出說明. 需要說明的是, UltraEdit既有自己的正則表達語法, 同時支持Unix型語法. 不失一般性, 下文介紹其Unix型語法, 在UE中, 需要到Advanced-->Configuration-->Find中, 選中Unix Style Regular Expression.
水平所限, 如有錯誤, 還請斧正. 歡迎轉載, 轉載請註明出處. 格式說明: 紅色表示一個正則表達, 其中的粗體表示特殊含義字元 黑色表示說明, 藍色表示示例部分 *特殊字元: 特殊字元是具有特殊含義的字元. 列表如下: \ 轉意字元, 轉換下一個字元的含義.詳見 *轉意字元. ^ 表徵行首, 即表示後繼字元必須為行首字元 譬如^http表示行首的http $ 表示行尾, 即表示先行字元為行尾字元 譬如.com$表示行尾的.com * 無或者重複, 表示該位置或者無內容(null), 或者為先行字元的多次重複 + 重複, 表示該位置為先行字元的多次重複 譬如te*st可以是test, teest, teeest, 但te+st不能是test . 非新行單字元, 表示任意非新行的單個字元(一個tab, 一個空格, 一個數位, 一個字母, etc.) | 邏輯或, a|b表示該位置為a或者為b 譬如Jon|ke表示Jone或Joke, Z.e|+可以表示Zoe, 也可以表示Zoo, 但不是Zooo, ... ………… *塊(Block): (expression) 標記塊, 括號內為標記內容. 標記塊既影響驗證順序, 也可以用來標記表達式中的部分內容. 在"替換"命令中, 標記過的塊可以依次用\1, \2,...來表示, (在editplus中, 整個符合正則表示的串則可以用\0來表示.) 正則表達中最多可以標記9個塊. 譬如: 搜尋(john|smith), 則john或smith都符合條件, 而如果搜尋john|smith, 則只有johnmith或者johsmith符合條件 搜尋(h.*o) (f.*s), 如果找到"hello folks", 則\2 \1可以將它替換為"folks hello" ………… [xyz] 單字元集, 方括號內為字元集的成員. 單字元集塊表示該位置為一個該集中的字元 備註: 單字元集中的特殊字元: 除-, ^, ]和\外, 所有(特殊)字元在[]內都表示常意: * 單個出現的-表示其常意(即字元"-"), 而x-y形式則表示ascii碼在ascii(x)和ascii(y)之間(inclusive)的字元. * ^表示後繼的所有字元為取非, 即譬如[a-z^b]表示除b外所有小寫字母 * 轉意符仍舊有效, 如[\t\n]表示該字元為tab或換行 * \\, \], \^, \-分別表示\, ], ^, - ………… 譬如: [0-9a-z]表示任意數位或字母, [a-z^e-h]表示非efgh的小寫字母, [^\^\]]表示非^和]的任意字元(包括空白,換行等) [(-*]表示(, )或* (ascii碼分別為40, 41, 42) ………… ………… *轉意字元"\": 轉意字元(Escape character)\的作用是轉換(toggle)後續第一個字元的含意: 1. 常用的標誌符 \d 表示一個數位字元, 等價與[0-9]. \D 表示一個非數位字元, 等價與[^0-9]. \f 表示一個form-feed字元(unix). \n 表示一個linefeed字元(新行符). \r 表示一個carriage return字元(復位符). \s 表示任意一個非換行符的white space (空白字元), 包括空格, tab, form-feed等. \S 表示一個非換行符的non-white space (非空白字元). \t 表示一個tab. \v 表示一個縱向tab (unix). \w 表示任意一個顯示字元, 包括下劃線 (數位, 字母, 特殊符號等, 但不包括white space). \W 表示任意一個非顯示字元(non-word character). ………… 2. 如果下一個字元在語境中本身具有特殊含意, 轉意字元取消它的特殊含意 譬如: .原先代表任意字元, ]在[]塊中表示塊終止,而\.代表常意的點號, [\]]表示] ………… |
送花文章: 3,
|