处理程序!
正规表示法基本上是一种『表示法』, 只要工具程序支持这种表示法,那么该工具程序就可以用来作为正规表示法的字串处理之用。 例如 vi, grep, awk ,sed 等工具.
常用的元字符及其意义:
^word :定位(出现在)行首
word$ :定位(出现在)行尾
\< : 锚定词首
\> : 锚定词尾
\b : 既可锚定词首也可锚定词尾
\( \) : 分组引用 引用前面查找到的关键字
. :匹配任意单个字符
\ :跳脱字符,将特殊符号的特殊意义去除!
* :重复零个到无穷多个的前一个 RE 字符
.* : 任意长度的任意字符 , -->;贪婪模式
[] :指定范围内的任意单个字符
eg:在 [] 当中[只代表一个待搜寻的字符], 例如 [afl] 代表 a 或 f 或 l 的意思!
\? : 匹配前面的字符0次或1次
[n1-n2] :字符集合的 RE 字符,里面列出想要撷取的字符范围!
[^list] :字符集合的 RE 字符,列出不要的字串或范围!取反
\{n,m\} :连续 n 到 m 个的『前一个 RE 字符』
\{n\} :则是连续出现 n 次
\{n,\} : -->;至少出现n次
\{0,n\} : -->;至多n次 eg:在 g 与 g 之间有 2 个到 3 个的 o 存在的字串,亦即 (goog)(gooog)
grep -n 'go\{2,3\}g' regular_express.txt
-----------------------------------------------------------------------------------------
? 匹配其前面的字符0次或1次
\( \) -->; () 分组
\{ \} -->; {}
+ : 次数匹配,匹配其前的字符至少1次
| :或者 -->; a|b (C|c)at -->; Cat或cat
cat|dog -->; cat或dog
查找以“the”开头的行
查找以“dog”结尾的行
查找以“th”开头的单词所在的行
查找以“s”结尾的单词所在的行
查找有双引号的行
常用的字符集:[: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 的数字与字节