正則不怎麼會用

2022-05-27 09:27:13 字數 2070 閱讀 6662

一、基本正則

1."."(乙個點)

匹配除換行符之外的任意乙個字元,例如r.t能匹配rat、ret,但是不能匹配root

2."*"符號

用於匹配前乙個字元0次或任意多次,比如ab*,可以a、ab、abb等。比如".*"代表任意長度的不包含換行的字元

grep 'r*t' /etc/passwd --->沒有rt、rrt、rrrt,只能匹配到t

grep 'r.*t' /etc/passwd --->查詢包含字母r,後面緊跟任意長度的字元,再跟乙個字母t的行

3."\"

匹配前面的字元n到m次

grep 'ro\t' /etc/passwd

匹配前面的字元n次,下例匹配的是包含root的行

grep 'ro\t' /etc/passwd

匹配前面的字元至少出現n次(包含n次)

grep 'ro\t' /etc/passwd

4."^"

匹配開頭的字元,比如,'^ll'匹配的是以字母root開始的行

grep '^root' /etc/passwd

5."$"

匹配結尾的字元,"abc$"代表以abc結尾的行

grep 'abc$' /etc/passwd

匹配空行"^$"

6.匹配方括號內出現的任一字元。比如單項選擇題的答案可能是a、b、c、d,用正則表達就是[abcd]

匹配所有的大寫字母[a-z]

匹配所有的字母[a-za-z],"-"做範圍限定

匹配非字母的字元[^a-za-z],"^"是取反的意思

匹配手機號"^1[38][0-9]\"

7.\"\"是轉義符

匹配乙個坐機號碼:0720-66666666或者0720-66666666

單純用[-]匹配是不行的,因為這裡的"-"是有特殊意義的,需要"\"轉義一下,寫法應該是[\\-]

8."\<"和"\>"

這兩個符號分別用於界定左邊界和右邊界

,比如說"\"用於匹配以hello結尾的單詞

\就可以精確匹配到hello這個單詞

9."\d"

\d匹配乙個數字,等價於[0-9],不過\d在配合grep使用時需要加選項-p,因為\d是一種perl相容模式的表示式

[root@localhost ~]# echo 123 | grep -p '\d'

123[root@localhost ~]# echo 123 | grep '[0-9]'

12310."\b"

匹配單詞的邊界,比如"\bhello\b"可精確匹配"hello"單詞

[root@localhost ~]# echo "hello world" | grep "\bhello\b"

hello

11."\b"

匹配非單詞的邊界,比如hello\b可以匹配"helloworld"中的"hello"

[root@localhost ~]# echo "helloworld" | grep "hello\b"

helloworld

12."\w"

匹配字母、數字和下劃線,等價於[a-za-z0-9]

13."\w"

匹配非字母、非數字、非下劃線、等價於[^a-za-z0-9]

14."\s"

匹配任何空白字元

15."\s"

匹配任何非空白字元

二、擴充套件正則

使用擴充套件正則需要使用egrep命令

1."?"

匹配前面的乙個字元0次或1次

2."+"

匹配前乙個字元1次以上

3."|"

是"或"的意思

4."()"

該符號經常與"|"符號聯合使用,用於列舉一些列可替換的字元。

比如要匹配"hood"、"hard"、"hold"

h(ar|oo|ol)d

三、萬用字元

"{}"

擁有匹配所有括號內包含的以逗號隔開的字元

第一種方式:ls .doc

第二種方式:ls [a-c].doc

列出以字母ab或者cd開頭,以.doc結尾的檔案,就只能用"{}"

"!"[!a]代表非a

軟體工程是不是教會不怎麼會寫程式的人開發軟體?

說真的,當我在思考這個問題的時候,我考慮了很久,最終寫下了以下的文段。因為我發現在學習的過程中發現,其實在上學期間學到的東西更多的是教會自己如何去思考。那麼軟體工程是不是教會不怎麼會寫程式的人開發軟體?我的回答是 很大程度上是。但是更多的是提供一種科學的,有效的開發思想 理念 開發模式和開發流程。如...

軟體工程是不是教會不怎麼會寫程式的人開發軟體?

答 我的觀點是否。從問題來看,提供的兩個前提都不可能到達問題的結論,原因如下 1 身為計算機專業的學生,在大一大二打下基礎的重要階段,修得並熟練掌握至少一門語言是重中之重。在此之上,還要根據問題 專案 物件的要求要合理地程式設計,用最優的方法解決問題也是十分重要的環節和基礎。若沒有掌握或者了解這些,...

軟體工程是不是教會不怎麼會寫程式的人開發軟體呢?

軟體工程的基本內容 軟體工程原理 軟體工程過程 軟體工程方法 軟體工程模型 軟體工程管理 軟體工程度量 軟體工程環境 軟體工程應用 軟體工程開發使用。著名軟體工程專家b.boehm綜合有關專家和學者的意見並總結了多年來開發軟體的經驗,於1983年在一篇 中提出了軟體工程的七條基本原理 1 用分階段的...