史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 程式 & 網頁設計技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-03-15, 11:27 PM   #1 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 正則表達在一般文本編輯軟體中的使用說明

很多文本編輯器, 譬如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. 如果下一個字元在語境中本身具有特殊含意, 轉意字元取消它的特殊含意
譬如:

.原先代表任意字元, ]在[]塊中表示塊終止,而\.代表常意的點號, [\]]表示] …………
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:05 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1