網(wǎng)站做cnzz流量統(tǒng)計(jì)關(guān)鍵詞優(yōu)化排名的步驟
正則表達(dá)式學(xué)習(xí)筆記
- 一、概念
- 二、正則表達(dá)式組成
- 三、常見(jiàn)的正則表達(dá)式
- 3.1 .匹配任意字符
- 3.2 * 匹配前一個(gè)字符的0個(gè)或多個(gè)實(shí)例
- 3.3 ^ 匹配輸入字符串的開(kāi)頭
- 3.4 $ 匹配行尾
- 3.5 [] 匹配字符集合
- \<\> 精確匹配符號(hào)
一、概念
正則表達(dá)式是由一系列特殊字符組成的字符串,每個(gè)特殊字符都被稱(chēng)為元字符,元字符并不表示字面上的含義,而都有特定的含義。
正則表達(dá)式由普通字符和元字符組成的集合,這個(gè)集合用來(lái)匹配模式。正則表達(dá)式的功能就是文本查詢(xún)和字符串操作,它可以匹配文本的一個(gè)字符與字符集合。
例如a、b、1、2等字符屬于普通字符,普通字符可以按照字面理解,
而*、^、[]等元字符,shell賦予了他們超越字面意思的意義,如*字面意思是符號(hào),實(shí)際卻表示重復(fù)前面的字符0次或多次的隱藏含義。
二、正則表達(dá)式組成
一個(gè)正則表達(dá)式由下列1項(xiàng)或多項(xiàng)組成:
1.一個(gè)字符集: 普通字符
2.錨: 指定了正則表達(dá)式要匹配的文本在文本行中所處的位置,如^和$就錨
3.修飾符 擴(kuò)大或縮小正則表達(dá)式匹配文本的范圍,修飾符含星號(hào)、括號(hào)和反斜杠
三、常見(jiàn)的正則表達(dá)式
正則表達(dá)式由一系列特殊字符組成,其中每個(gè)字符都有特定的含義和功能。以下是一些常見(jiàn)的正則表達(dá)式字符和功能:
. 匹配任意字符(除了換行符)
* 匹配前一個(gè)字符的0個(gè)或多個(gè)實(shí)例
+ 匹配前一個(gè)字符的1個(gè)或多個(gè)實(shí)例
? 匹配前一個(gè)字符的0個(gè)或1個(gè)實(shí)例
^ 匹配輸入字符串的開(kāi)頭
$ 匹配輸入字符串的結(jié)尾
\ 轉(zhuǎn)義符
[] 匹配字符集合
\<\> 精確匹配符號(hào)
\{n\} 匹配前面字符出現(xiàn)n次
\{n,\} 匹配前面字符至少出現(xiàn)n次
\{n,m\} 匹配前面字符出現(xiàn)n次與m次之間
[abc] 匹配方括號(hào)內(nèi)的任意一個(gè)字符(這里是a、b或c)
[^abc] 匹配除方括號(hào)內(nèi)字符之外的任意字符
\\d 匹配任意數(shù)字字符
\\D 匹配任意非數(shù)字字符
\\s 匹配任意空白字符(包括空格、制表符等)
\\S 匹配任意非空白字符
\\w 匹配任意字母、數(shù)字或下劃線字符
\\W 匹配任意非字母、數(shù)字或下劃線字符
3.1 .匹配任意字符
.用于匹配任意字符,…73表示前面3個(gè)字符為任意字符,第4和第5 個(gè)字符為7和3
3.2 * 匹配前一個(gè)字符的0個(gè)或多個(gè)實(shí)例
*用于匹配前面一個(gè)普通字符的0次或多次
cat hell0.txt | grep l*
3.3 ^ 匹配輸入字符串的開(kāi)頭
3.4 $ 匹配行尾
$匹配行尾
cat josh.txt | grep josh$
^$ 匹配空白行
cat josh.txt | grep ^$
3.5 [] 匹配字符集合
[]匹配字符集合,將匹配中括號(hào)字符集中的某一字符
匹配字符j
cat josh.txt | grep [j]
匹配26字母順序[a-b]間任意字符,
cat josh.txt | grep [a-b]
匹配任意小寫(xiě)字符或數(shù)字
cat josh.txt | grep [a-z0-9]
匹配范圍在a~z之外的任意一個(gè)字符
grep "[^a-z]" az.txt