正則表達(dá)式是表達(dá)文本模式的方法
正則表達(dá)式(Regular Expression),簡稱為正則或Regex,是一個用來描述、匹配和操作字符串的工具。
(1)限定字符
限定字符多用于重復(fù)匹配次數(shù)
常用限定字符:
語法 | 說明 |
|
上一項(xiàng)是可選的,最多匹配一次。 |
* |
前一項(xiàng)將被匹配零次或多次。 |
+ |
前一項(xiàng)將被匹配一次或多次。 |
{N} |
上一項(xiàng)完全匹配N次。 |
{N,} |
前一項(xiàng)匹配N次或多次。 |
{N,M} |
前一項(xiàng)至少匹配N次,但不超過M次。 |
(2)元字符
元字符
是表示特殊函數(shù)的字符,包括以下這些^ $ . [ ] { } - ? * + ( ) | \\
常用元字符:
語法 | 說明 |
. |
匹配任何單個字符。 |
^ | 匹配行首的空字符串;也代表不在列表范圍內(nèi)的字符 |
$ | 匹配文本行結(jié)尾 |
\b | 匹配單詞的開始或結(jié)束(單詞邊緣的空字符串) |
\w | 匹配字母或數(shù)字或下劃線或漢字 |
\s | 匹配任意空白符 |
\d | 匹配一個數(shù)字字符。等價于[0-9]。 |
grep -h '.zip' test.txt
在文件中查找包含正則表達(dá)式“.zip”的文本行
grep -h '^zip' test.txt
grep -h 'zip$' test.txt
分別在文件中搜索行首和行尾包含“zip”的文本行
(3)反義字符
語法 | 說明 |
\B | 匹配不是單詞開頭或結(jié)束的位置 |
\D | 匹配一個非數(shù)字字符。 |
\S | 匹配任何可見字符。 |
\W | 匹配任何非單詞字符。 |
(4)字符類
方括號之中的字符,表示可以任意匹配其中的一個。
語法 | 說明 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou這幾個字母以外的任意字符 |
grep -h '[bg]zip' test.txt
匹配包含字符串“bzip”或者“gzip”的任意行
grep -h '[^bg]zip' test.txt
匹配不以'b'或'g'開頭的行
-在方括號中表示一個字符區(qū)域
grep -h '^[A-Z]' test.txt
匹配以大寫字母開頭的行
grep -h '[-AZ]' test.txt
匹配以連字符,或大寫A,或大寫Z開頭的行
(5)預(yù)定義字符類
-
[:alnum:]
字母數(shù)字字符。在 ASCII 中,等價于:[A-Za-z0-9]
-
[:word:]
與[:alnum:]
相同, 但增加了下劃線字符。 -
[:alpha:]
字母字符。在 ASCII 中,等價于[A-Za-z]
-
[:blank:]
包含空格和 tab 字符。 -
[:cntrl:]
ASCII 的控制碼。包含了0到31,和127的 ASCII 字符。 -
[:digit:]
數(shù)字0到9 -
[:graph:]
可視字符。在 ASCII 中,它包含33到126的字符。 -
[:lower:]
小寫字母。 -
[:punct:]
標(biāo)點(diǎn)符號字符。 -
[:print:]
可打印的字符。等于[:graph:]
中的所有字符,再加上空格字符。 -
[:space:]
空白字符,包括空格,tab,回車,換行,vertical tab, 和 form feed.在 ASCII 中, 等價于[\t\r\n\v\f]
-
[:upper:]
大寫字母。 -
[:xdigit:]
用來表示十六進(jìn)制數(shù)字的字符。在 ASCII 中,等價于[0-9A-Fa-f]
(6)選擇
|
表示匹配一系列字符串之中的一個。
echo "AAA" | grep -E 'AAA|BBB'
AAA
echo "BBB" | grep -E 'AAA|BBB'
BBB
'AAA|BBB'表示匹配字符串'AAA'或者是字符串'BBB'
echo "CCC" | grep -E 'AAA|BBB'
grep
程序使用-E
參數(shù),表示按照正則表達(dá)式規(guī)則匹配。并且,這個正則表達(dá)式放在單引號之中,為的是阻止Shell把|
解釋為管道操作符。
|
可以多個連用,也可以與其他正則規(guī)則結(jié)合使用。
echo "AAA" | grep -E 'AAA|BBB|CCC'
AAA
grep -Eh '^(bz|gz|zip)' test.txt
附:
-
--
:表示范圍,如果它不是列表中的第一個或最后一個,也不是列表中某個范圍的終點(diǎn)。 -
\<
:匹配單詞開頭的空字符串。文章來源:http://www.zghlxwxcb.cn/news/detail-608134.html -
\>
:匹配單詞末尾的空字符串。文章來源地址http://www.zghlxwxcb.cn/news/detail-608134.html
\f | 匹配一個換頁符。 |
\n | 匹配一個換行符。 |
\r | 匹配一個回車符。 |
\t | 匹配一個制表符。 |
\v | 匹配一個垂直制表符。 |
到了這里,關(guān)于安全基礎(chǔ) --- 正則表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!