一、基本正則
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 用分階段的...