亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Linux行處理工具之grep?正則表達(dá)式詳解

 更新時(shí)間:2022年08月09日 16:01:26   作者:pdudo  
grep表達(dá)式有三種不同的版本,分別為basic(BRE)?、extended(ERE)?以及?perl?PCRE,這篇文章主要介紹了Linux行處理工具之grep?正則表達(dá)式詳解,需要的朋友可以參考下

之前我們學(xué)習(xí)了linux grep的基本操作,以及提及了linux grep的孿生兄弟egrep 和 fgrep,這次我們來看下。

在介紹正則表達(dá)式之前,我們先來嘗試一下,假如有如下文本。

我們想獲取空行,應(yīng)該如何來寫呢?

命令:

grep ^$ test1 -n

通過上述例子,我們使用正則表達(dá)式^$已經(jīng)成功拿到了第四行數(shù)據(jù),那么,這究竟如何解呢,我們細(xì)看博文。

正則表達(dá)式在grep應(yīng)用以及差別

grep表達(dá)式有三種不同的版本,分別為basic(BRE) 、extendedERE) 以及 perl(PCRE) ,我們grep默認(rèn)支持的是BRE,而EREegrep支持的,或者說是grep -E支持的, 而PCRE則是grep -P支持的,那么這三者究竟有啥區(qū)別呢?

 BREEREPCRE
任意字符...
前一個(gè)字符0次或者出現(xiàn)1次???
前一個(gè)字符出現(xiàn)0次或無數(shù)次***
前一個(gè)字符出現(xiàn)一個(gè)或者更多+++
字符集[...][...][...]
字符集取反[^...][^...][^...]
匹配前面字符出現(xiàn)的n次{n}{n}{n}
匹配前面字符出現(xiàn)的n次以上{n,}{n,}{n,}
匹配前面字符出現(xiàn)的n次到m次{n,m}{n,m}{n,m}
開頭
結(jié)尾$$$
多表達(dá)式連接|    
單詞\w\w\w 或者 [[:word:]]
字母大寫/小寫[[:upper:]]/[[:lower:]][[:upper:]]/[[:lower:]][[:upper:]]/[[:lower:]]
非單詞  \W
空白字符\s 或者 [[:space:]]\s 或者 [[:space:]] 
非空白字符[^[:space:]][^[:space:]]\S
數(shù)字\d 或者 [[:digit:]][[:digit:]][[:digit:]]
非數(shù)字\D[^[:digit:]][^[:digit:]]

那么如何進(jìn)行切換呢? 如上面所示,我們來看下。

如上所述,若我們需要連接多個(gè)匹配項(xiàng),在BRE(grep)中則是|,而在ERE(egrep)PCRE(grep -P)中則是|,所以我們可以順利獲取出結(jié)果,更多匹配項(xiàng)如上所述

匹配案例

匹配電話號(hào)碼

若電話號(hào)碼為xxx-xxxx-xxxx類型的,如何進(jìn)行匹配呢? 我們可以使用'[0-9]{3}-[0-9]{4}-[0-9]{4}'進(jìn)行匹配。

例如:

命令:

echo "telphone: 180-1234-5678" | grep  '[0-9]{3}-[0-9]{4}-[0-9]{4}' -o

同樣的,該方法還可以用來匹配其ip地址,正則: [0-9]{0,3}.[0-9]{0,3}.[0-9]{0,3}.[0-9]{0,3}

匹配空行

若我們想匹配空行,則可以使用^$進(jìn)行匹配,即: 開頭就是結(jié)尾。

例如:

如上命令,我們順利取出了 第3、5、6行數(shù)據(jù)

匹配所有字母

命令:

echo 'Ac123e23dddwQW21' | grep "[[:upper:]]|[[:lower:]]" -o

取出redis在使用的配置文件

我們知道redis服務(wù)器是以#來注釋的,我們可以利用grep或者egrep來過濾掉注釋和空格,例如:

fgrep

fgrep最為簡單,它不會(huì)啟用正則表達(dá)式,而是按照字符來進(jìn)行搜索,什么意思呢? 我們舉個(gè)小案例就清楚了,

它不會(huì)進(jìn)行任何正則匹配,所以可以直接使用搜索選就成,不用考慮轉(zhuǎn)移啥的。

總結(jié)

我們一般將BRE稱之為 基本正則表達(dá)式、ERE稱之為 擴(kuò)展正則表達(dá)式 而 PCRE稱之為Perl兼容的正則表達(dá)式,如上正則表達(dá)式不是grep工具所實(shí)現(xiàn)的,而是單獨(dú)的一套表達(dá)式,有很多語言在使用中,例如 sed默認(rèn)正則表達(dá)式是 BRE, 而我們之前所學(xué)習(xí)的awk使用的正則表達(dá)式則是ERE,是不是感覺知識(shí)被串聯(lián)起來了呢,好巧,我也是,怎么樣,快來動(dòng)手試驗(yàn)一下吧。

到此這篇關(guān)于Linux行處理工具之grep 正則表達(dá)式詳解的文章就介紹到這了,更多相關(guān)linux grep 正則表達(dá)式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 正確使用帶有"g"標(biāo)記的javascript正則表達(dá)式

    正確使用帶有"g"標(biāo)記的javascript正則表達(dá)式

    javascript正則表達(dá)式是對(duì)字符串執(zhí)行模式匹配的強(qiáng)大工具。正確使用它會(huì)給我們的工作帶來很大的便利??墒怯行┑胤接捎谖覀儧]有太注意或者根本不理解,就會(huì)遇到不可預(yù)料的麻煩。
    2009-05-05
  • 基于xpath選擇器、PyQuery、正則表達(dá)式的格式清理工具詳解

    基于xpath選擇器、PyQuery、正則表達(dá)式的格式清理工具詳解

    這篇文章主要介紹了基于xpath選擇器、PyQuery、正則表達(dá)式的格式清理工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 正則表達(dá)式詳述 四

    正則表達(dá)式詳述 四

    正則表達(dá)式詳述 四...
    2007-04-04
  • 一篇文章了解正則表達(dá)式的替換技巧

    一篇文章了解正則表達(dá)式的替換技巧

    正則表達(dá)式非常有用,查找、匹配、處理字符串、替換和轉(zhuǎn)換字符串,輸入輸出等,下面這篇文章主要給大家介紹了關(guān)于正則表達(dá)式替換技巧的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • 精通 JavaScript中的正則表達(dá)式手機(jī)整理 推薦

    精通 JavaScript中的正則表達(dá)式手機(jī)整理 推薦

    精通 JS正則表達(dá)式,想學(xué)習(xí)js正則表達(dá)式的朋友非常值得看,整理的比較不錯(cuò)。
    2009-10-10
  • 正則表達(dá)式{n,m}量詞(至少n次,最多m次)

    正則表達(dá)式{n,m}量詞(至少n次,最多m次)

    這篇文章主要介紹了正則表達(dá)式{n,m}量詞,可以重復(fù)前面匹配的字符n-m次,至少n次,最多m次,需要的朋友可以參考下
    2016-12-12
  • 深入淺析正則表達(dá)式中的\B和\b

    深入淺析正則表達(dá)式中的\B和\b

    很多朋友對(duì)正則表達(dá)式中的\B和\b 搞不清楚,今天小編給大家簡單介紹下正則表達(dá)式中的\B和\b,感興趣的朋友一起看看吧
    2018-04-04
  • javascript常用正則表達(dá)式合集

    javascript常用正則表達(dá)式合集

    常用的正則驗(yàn)證代碼,非常的全面,但因?yàn)槭轻槍?duì)以前的版本,例如手機(jī)等,學(xué)習(xí)正則與使用正則驗(yàn)證表單的朋友絕對(duì)值得參考。
    2010-08-08
  • 簡單高效有用的正則表達(dá)式

    簡單高效有用的正則表達(dá)式

    正則表達(dá)式是一組由字母和符號(hào)組成的特殊文本,它可以用來從文本中找出滿足你想要的格式的句子,這里為大家分享如何編寫簡單高效有用的正則表達(dá)式,需要的朋友可以參考下
    2020-02-02
  • 字符串過濾正則表達(dá)式的方法

    字符串過濾正則表達(dá)式的方法

    這篇文章主要介紹了字符串過濾正則表達(dá)式的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12

最新評(píng)論