歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 基礎正則表達式

基礎正則表達式

日期:2017/3/1 9:40:24   编辑:Linux編程

1. 正則表達式

正則表達式是處理字符串的方法,以行為單位進行處理。

2. 基礎正則表達式字符

使用下面的特殊字符

^string 以string開頭的
grep '^w' test test文件中以w開頭的行
string$ 以string結尾的
grep 'day$' test 以day結尾的行
. 匹配任意字符
grep -n 'go.d' test 找到 good goad 等
\ 轉義字符, 將特殊字符進行轉義
grep t\'his test
* 重復0次或多次
grep 'go*d' test 找到 good
[list] 找出選取的字符
[n1-n2] 找出選取的字符范圍 grep '[0-9]' filename 找到包含數字的
[a-z] 包含所有小寫字母
[^list] 不包括選取的字符
\{n,m\} 匹配n到m次前一個字符
\{n\}出現n詞, \{n,\}出現n次以上

3. 語系對正則表達式的影響

不同語系的編碼數據並不相同。
例如英文大小寫編碼:
LANG=C時, 0 1 2 3 ... A B C ... Z a b c ... z
LANG=zh_CN時, 0 1 2 3 .... a A b B c C ... z Z
所有當我們取 [A-Z] 時,
LANG=C 把大寫A-Z取出來
而LANG=zh_CN.gb2312 會把b-z也取出來。
為了避免這個問題, 使用正則表達式時,使用的是兼容於 POSIX 的標准。

[:digit:] Only the digits 0 to 9
匹配數字
[:alnum:] Any alphanumeric character 0 to 9 OR A to Z or a to z.
字母和數字
[:alpha:] Any alpha character A to Z or a to z.
字母A-Z, a-z
[:blank:] Space and TAB characters only.
匹配空格和 tag
[:xdigit:] Hexadecimal notation 0-9, A-F, a-f.
16進制數字
[:punct:] Punctuation symbols . , " ' ? ! ; : # $ % & ( ) * + - / < > = @ [ ] \ ^ _ { } | ~
標點符號
[:print:] Any printable character.
可打印字符
[:space:] Any whitespace characters (space, tab, NL, FF, VT, CR). Many system abbreviate as \s.
任何產生空白的字符
[:graph:] Exclude whitespace (SPACE, TAB). Many system abbreviate as \W.
除了空格和tag外的其他按鍵
[:upper:] Any alpha character A to Z.
大寫
[:lower:] Any alpha character a to z.
小寫
[:cntrl:] Control Characters NL CR LF TAB VT FF NUL SOH STX EXT EOT ENQ ACK SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC IS1 IS2 IS3 IS4 DEL.
代表鍵盤上的控制鍵

通常與[] 一起使用,
例如:

grep '[[:digit:]]' test 找到數字
grep '[[:alpha:]]' test 找到字母

Linux正則表達式特性及BRE與ERE的區別 http://www.linuxidc.com/Linux/2014-03/99152.htm

grep使用簡明及正則表達式 http://www.linuxidc.com/Linux/2013-08/88534.htm

正則表達式的用法 http://www.linuxidc.com/Linux/2013-03/81897.htm

正則表達式之零寬斷言 http://www.linuxidc.com/Linux/2013-03/81897.htm

Linux中正則表達式與文件格式化處理命令(awk/grep/sed) http://www.linuxidc.com/Linux/2013-03/81018.htm

Copyright © Linux教程網 All Rights Reserved