From《鸟哥的Linux私房菜——基础学习篇》Part-12
字符编码对正则的影响
语系 | 编码顺序 | ||
---|---|---|---|
LANG=C | 0 1 2 3 4 … A B C D … Z a b c d …z | ||
LANG=zh_TW | 0 1 2 3 4 … a A b B c C d D …… z Z | ||
使用正则时,需要特别注意运行环境的语系是什么,不同的语系会导致不同结果!!! |
|||
使用特殊符号的正则能避免不同字符编码的影响!!! |
|||
### 特殊符号 | |||
符号 | 意义 | ||
:-: | :— | ||
[:alnum:] |
代表英文大小写字符及数字,即0-9 ,A-Z ,a-z |
||
[:alpha:] |
代表任何英文大小写字符,即A-Z ,a-z |
||
[:blank:] |
代表空白键或者[Tab] 按键 |
||
[:cntrl:] |
代表键盘上面的控制按键,包括:CR ,LF ,Tab ,Del … |
||
[:digit:] |
代表数字而已,即0-9 |
||
[:graph:] |
除了空白字符(空白键和[Tab] 按键)之外的其他所有按键 |
||
[:lower:] |
代表小写字符,即a-z |
||
[:print:] |
代表任何可以被打印出来的字符 | ||
[:punct:] |
代表标点符号(punctuation symbol),即:" ,' ,? ,! ,; ,: ,# ,$ … |
||
[:upper:] |
代表大写字符,即A-Z |
||
[:space:] |
任何会产生空白的字符,包括:空白符,[Tab] ,CR … |
||
[:xdigit:] |
代表 16 进位的数字类型,包括:0-9 ,A-F ,a-f |
||
### 基础RE字符 | |||
字符 | 意义 | ||
:-: | :— | ||
^word |
待搜寻的字串(word)在行首 | ||
word$ |
待搜寻的字串(word)在行尾 | ||
. |
代表一定有一个任意字符 | ||
\ |
转义符,将特殊符号的特殊意义去除 | ||
* |
重复零个到无穷多个的前一个 RE 字符 | ||
[list] |
一个待搜索字符的集合,里面列出想搜索的字符 | ||
[n1-n2] |
一个待搜索字符的集合,里面列出想搜索的字符的范围 | ||
[^list] |
一个待搜索的集合,里面列出不要的字符或范围 | ||
{n,m} |
连续 n 到 m 个的前一个 RE 字符,{n} 连续 n 个的前一个 RE 字符,{n,} 连续 n 个以上的前一个 RE 字符 |
||
### 扩展RE字符 | |||
字符 | 意义 | ||
:-: | :— | ||
+ |
重复一个或一个以上的前一个 RE 字符 | ||
? |
零个或一个的前一个 RE 字符 | ||
| |
逻辑或 or | ||
() |
符合括号内条件的集合 | ||
()+ |
一个或多个符合括号内条件的集合 | ||
### Example | |||
|