以下例子均在Search and Replace中適用,EditPlus也有正則表達式,但有點不一樣。
1.1 基本操作符
|
* |
重復0次或更多次 |
|
+ |
重復一次或更多次 |
|
? |
重復一次 |
|
| |
或 操作符 |
|
! |
非 操作符 |
|
^ |
以^后字符開始的行 |
|
$ |
以$前字符結尾的行 |
|
^^ |
以^^后字符開始的文件 |
|
$$ |
以$$前字符結尾的文件 |
|
[] |
范圍操作符 |
|
() |
子串 |
|
+n |
指定列數操作符,常與()或[]配合使用 |
1.2 正則表達式的查找
* Zero or More Operator:匹配在()或[]中零次或更多次的表達式。*也可以單獨使用,如果單獨使用,將是匹配一行里從開始到結束的所有字符。也可以在*后指定字符以匹配兩個或更多直至最大匹配數的表達式(可以在軟件中修改)。
例子: *(is) 出現零次或更多次的is,如is, Mississippi
*[is] 出現零次或更多次的i或s,如 Some, Expression,single
Windows*[0-9] 以Windows為開始,隨后跟着0-9字符的字符串
windows*[]95 以windows為開始,隨后跟着任意個字符,后以95結尾的字符串
+ One Or More Operator:重復出現1次或多次操作符。
例子: +(is) 匹配字符串is,Mississippi
w+e 匹配字符串wide,white,write,不匹配we
? One Occurrence Operator:?前或后的字符串出現一次。也可以放在兩個字符串之間,放在()前時,表示()內表達式出現一次。
例子: ?(is) 匹配 is
win?95 匹配 win 95,win-95,win/95
| Or Operator:與操作符。需要與()操作符配合使用。
例子: (01/|02/)+[0-9](/95|/98) 匹配 01/15/98和02/12/98 前三個字符為01/或者02/,后面出現一到多位的0-9數字,后面跟着/95或者/98
w*[a-z](98|NT)\? 匹配 windows 98?,win NT? 以w為開始的字符串,后面跟着n(n>=1)個位的字母(必須為a到z),跟着98或者NT字符,最后以?結尾。注意:要查找?等表達式時,要使用轉義符\ 。
! Not Operator:非操作符。可以與()操作符配合使用。
例子: ?at!((b|c)at) 匹配 mat 和 sat 而不是 bat 或者 cat。注意:雙重括號的使用
*file!(beg*file) 匹配 a file 和 this file 而不是 beginning of file
*98!(Windows 98) 匹配 1998 而不是Windows 98
*98!(+[a-z ]98) 匹配 1998 而不是 windows 98
a?b?c!(aub?c)!(a?bvc) 查找aXbYc,X不是u,Y不是v
^ Beginning Of Line Operator:以^后字符為開始的行,注意是行而不是一個單詞。
例子: ^the 查找以the,The,THE開頭的行
^(the|[a<]) 查找以the或A或<開頭的行
^*( )BEnd\r\n*( )Exit Function 匹配 <space(s)(零個或多個空格)>Bend<接着下一行>Exit Function
$ End Of Line Operator:以$后字符為結束的行,跟^差不多,可以配合一起使用。
^^ Beginning Of File Operator:以^^后字符為開始的文件。
$$ End Of File Operator:以$$后字符為結束的文件。
[] Range Operator:可以參照上面的例子使用,注意*[]匹配的是最大可容納的字符串,包括一些換行符,可以在多行之間查找。
() Subexpression Operator:可以參照上面的例子使用。
+n Column Specifier:可以參照上面的例子使用。
