日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式||grep的使用

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式||grep的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??? 在編寫程序時,或者編寫網頁時,在處理一些不固定的字符時,我們通常會使用形如:. * ?等字符,而我們就把這稱作是正則表達式,尤其是我們在瀏覽一些網站進行用戶注冊時,通常會見到對我們的帳號、密碼、郵箱等格式或復雜程度進行限制,而這一切都是正則表達式的功勞,而正則表達式在不同的環境中也是具有不同的作用的。
??? 在正則表達式中我們一般是將這些組成正則表達式的字符稱作“元字符”。

??? 在Linux下,正則表達式:
??? ^PATTERN 行首錨定符,以PATTERN為行首開始
??? PATTERN$ 行尾錨定符,以PATTERN為行尾結束
??? \<PATTERN 詞首錨定符,以PATTERN為詞首開始的單詞
??? PATTERN\> 詞尾錨定符,以PATTERN為詞尾結束的單詞
??? . 匹配任意單個非空字符
??? * 匹配此前的字符0到任意次
??? .* 匹配此前長度的任意字符(當正則表達式中包含能接受重復的限定符時,通
常的行為是【在使整個表達式能得到匹配的前提下】匹配盡可能多的字符,我們將其稱之為:貪婪模式)
??? ? 匹配此前的字符0次或1次
??? \{m,n\} 匹配之前字符至少m次至少n次(注:匹配至少2次多則不限\{2,\} 匹配最多5次少則不限\{0,5\} 匹配5次\{5\})
??? [] 匹配指定范圍內的任意單個字符
??? [^] 匹配指定范圍外的任意單個字符
??? \(\) 標識引用和分組,做引用時,在后面要使用括號中的字符時只需輸入\n,
n標識次表達式中的從左至右的第幾個括號;做分組作用時,是指括號中的為一組,執行共同的動作


??? 而在Linux中我們通常使用的文本查找工具grep、egrep、fgrep都是配合正則表達式來使用的:
??? grep:基本正則表達式;
??? egrep:擴展正則表達式;
??? fgrep:快速搜索全部的字符。
??? grep [option] file
??? ???? --color=auto|always 指定匹配到的字符所顯示的顏色
??? ???? -E??? 支持擴展正則表達式即:grep -E = egrep
??? ???? -v 取反
??? ???? -i 忽略大小寫
??? ???? -r 搜索多個文件,即:遞歸搜索
??? ???? -B NUMBER 顯示搜索到的行的上NUMBER行
??? ???? -A NUMBER 顯示搜索到的行的下NUMBER行
??? ???? -C NUMBER 顯示搜索到的行的上下NUMBER行
??? ???? -o 只顯示匹配到的內容本身,并非所在的行
??? egrep 擴展正則表達式:擴展正則表達式對標準正則表達式的某些元字符進行了簡化如:
??? \{m,n\} ---->? {m,n}
??? \(\) ----> ()
??? 添加了:
??? | 表示或的意思
??? + 匹配之前字符1次或任意次


例子:
1、搜索以redhat為行開始的行在/etc/passwd中??? #grep --color=auto "^redhat"
/etc/passwd


2、搜索以 :為行結尾的行在/etc/passwd中??? ??? #grep --color=auto ":$"
/etc/passwd


3、搜索不是以字母r開頭的單詞在/etc/passwd中??? #grep --color=auto -v -o
"\<r" /etc/passwd


4、搜索以字母d結尾的單詞在/etc/passwd中??? ??? #grep --color=auto "d\>"
/etc/passwd


5、搜索形如XXX.XXX.XXX.XXX的行,X只為數字在/tmp/test/a.txt中??? #grep --
color=auto "\([[:digit:]]\{3\}\.\)\{3\}[[:digit:]]\{3\}" /tmp/test/a.txt


6、搜索以其為附加組多于兩個用戶的組??? ??? #grep --color=auto "\(,.*\)\{2\}$" /etc/group


7、搜索密碼永不過期的用戶??? ??? ??? #grep --color=auto "\(.*\)\{4\}99999" /etc/shadow



相信你看過后,對正則表達式和grep已經能夠熟練使用了!










?

轉載于:https://blog.51cto.com/grass51/774305

總結

以上是生活随笔為你收集整理的正则表达式||grep的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。