久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>正則表達式基本寫法(常用正則表達式超強整理)

正則表達式基本寫法(常用正則表達式超強整理)

發(fā)布時間:2024-01-24閱讀(18)

導(dǎo)讀正則表達式,又稱規(guī)則表達式。正則表達式的英語為:RegularExpression,常簡寫為regex、regexp或RE,是計算機科學中的一個概念。正則表....

正則表達式,又稱規(guī)則表達式。正則表達式的英語為:Regular Expression,常簡寫為regex、regexp或RE,是計算機科學中的一個概念。正則表達式是一種用來匹配字符串的強有力的武器。它的設(shè)計思想是用一種描述性的語言來給字符串定義一個規(guī)則,凡是符合規(guī)則的字符串,我們就認為它“匹配”了,否則,該字符串就是不合法的。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些符合某個模式的文本,許多計算機程序設(shè)計語言也都支持利用正則表達式進行字符串操作。正則表達式用于字符串處理、表單驗證等場合,實用高效,所以我們很有必要去掌握它,本文梳理一些工作中常用的正則表達式,以備不時之需。

正則表達式基本寫法(常用正則表達式超強整理)(1)

本文通過Linux系統(tǒng)中的grep命令來學習正則表達式,當grep與正則結(jié)合在一起時,grep就會根據(jù)正則表達式的含義在文本中查找出符合條件的字符串。

位置匹配

測試文件1內(nèi)容如下:

# cat reg1hello everyoneI am laoliangLinux helloLinuxI likeLinuxverymuch!

正則表達式基本寫法(常用正則表達式超強整理)(2)

^”表示錨定行首,匹配輸入字符串的開始位置。比如”^hello”表示只匹配位于行首的hello字符串。

正則表達式基本寫法(常用正則表達式超強整理)(3)

$”表示錨定行尾,匹配輸入字符串的結(jié)尾位置。比如”hello$”表示只匹配位于行尾的hello字符串。

正則表達式基本寫法(常用正則表達式超強整理)(4)

”^”與”$”分別代表錨定行首與錨定行尾,那么,我們將它們結(jié)合在一起使用,”^Linux$”表示Linux既位于行首,同時也位于行尾,換句話說,就是整行中只有一個單詞Linux。

正則表達式基本寫法(常用正則表達式超強整理)(5)

那么”^$”表示什么意思呢?”^$”就表示行首與行尾相連,換句話說就是空行。”-n”參數(shù)可以顯示行號,可以看到第5行空行被匹配到了。

正則表達式基本寫法(常用正則表達式超強整理)(6)

<”表示錨定詞首。”<lao”表示以lao作為詞首的單詞將會被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(7)

>”表示錨定詞尾。”liang>”表示以liang作為詞尾的單詞將會被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(8)

同理,我們也可以將”<“與”>”結(jié)合在一起使用,”<am>”表示當am既是詞首又是詞尾時則會被匹配到,換句話說,就是當am作為一個獨立的單詞時,則會被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(9)

正則表達式中,除了”<“與”>”能夠表示錨定詞首與錨定詞尾以外,我們還可以使用””去代替”<“和”>”,””既能錨定詞首,也能錨定詞尾,示例如下:

正則表達式基本寫法(常用正則表達式超強整理)(10)

B”則與””正好相反,”B”是用來匹配非單詞邊界的,如下”BLinux”表示只要Linux不是詞首就會被匹配到,同理”LinuxB”表示只要Linux不是詞尾就會被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(11)

次數(shù)匹配

測試文件2內(nèi)容如下:

# cat reg2a aa aaaaaaaaaabbbab abc abcceaf bf eccfef eef eeefffff

正則表達式基本寫法(常用正則表達式超強整理)(12)

{n}” 表示前面的字符連續(xù)出現(xiàn)n次,將會被匹配到。比如”a{2}”表示a連續(xù)出現(xiàn)兩次就會被匹到。

正則表達式基本寫法(常用正則表達式超強整理)(13)

{x,y}”表示之前的字符連續(xù)出現(xiàn)的次數(shù)在x與y之間,將會被匹配到。比如”a{2,4}”表示連續(xù)出現(xiàn)2次,3次,4次a字母將會被匹配。

正則表達式基本寫法(常用正則表達式超強整理)(14)

*”表示之前的字符連續(xù)出現(xiàn)任意次數(shù)(包括0次),將會被匹配到。比如”e*f”表示ef中間e出現(xiàn)任意次將會匹配。

正則表達式基本寫法(常用正則表達式超強整理)(15)

.”表示匹配任意單個字符。比如”ee..”表示ee后面跟隨任意兩個字符都會被匹配到,”空格”也算作單個字符所以也會被匹配。

正則表達式基本寫法(常用正則表達式超強整理)(16)

.*”可以理解為”.”與”*”的結(jié)合,表示連續(xù)出現(xiàn)任意次的任意單個字符,換句話說就是匹配任意長度的任意字符。比如”a.*”表示a字母后面存在任意長度的任意字符都可以被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(17)

?”表示匹配其前面的字符0或1次,也就是前面的字符要么沒有要么有一個。比如”abc?”表示ab后面c出現(xiàn)0次或者1次都會被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(18)

”表示匹配其前面的字符至少1次,也就是前面的字符必須有至少一個。比如”abc ”表示ab后面c至少要出現(xiàn)1次才會被匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(19)

字符匹配

測試文件3內(nèi)容如下:

# cat reg3 aa123a123ba123$a123bc456abcdefgaBdCeFgaBCDa1a3a#@!

正則表達式基本寫法(常用正則表達式超強整理)(20)

[[:alpha:]]” 表示匹配任意字母(不區(qū)分大小寫)。比如"a[[:alpha:]]{3}"表示只有a字母后面跟隨了3個字母的字符串才會被匹配到。還有一種方式”[a-zA-Z]”也能表示任意字母。

正則表達式基本寫法(常用正則表達式超強整理)(21)

[[:lower:]]”表示匹配任意小寫字母。比如"a[[:lower:]]{3}"表示只有當a后面的3個字符均為小寫字母時,才會被匹配到。還有一種方式”[a-z]”也能表示任意一個小寫字母。

正則表達式基本寫法(常用正則表達式超強整理)(22)

[[:upper:]]”表示匹配任意大寫字母。比如"a[[:upper:]]{3}"表示只有當a后面的3個字符均為小寫字母時,才會被匹配到。還有一種方式”[A-Z]”也能表示任意一個大寫字母。

正則表達式基本寫法(常用正則表達式超強整理)(23)

[[:digit:]]” 表示匹配任意數(shù)字。比如"a[[:digit:]]{3}"表示只有當a后面的3個字符均為數(shù)字時,才會被匹配到。還有一種方式”[0-9]”也能表示任意一個數(shù)字。

正則表達式基本寫法(常用正則表達式超強整理)(24)

[[:alnum:]]” 表示匹配任意數(shù)字或字母。比如"a[[:alnum:]]{3}"表示當a后面的3個字符為數(shù)字或字母時會被匹配到。還有一種方式”[a-zA-Z0-9]”與之等效。

正則表達式基本寫法(常用正則表達式超強整理)(25)

我們可以把上面[[:alpha:]]等拆成兩部分理解:

  • 第一部分:最外層的[ ],表示指定范圍內(nèi)的任意單個字符;
  • 第二部分:最內(nèi)層的[:alpha:],表示不區(qū)分大小寫的字母。

[ ]”就表示匹配指定范圍內(nèi)的任意單個字符的意思。比如"a[bB#3]"表示a后面是b或B或#或3都可以匹配到。

正則表達式基本寫法(常用正則表達式超強整理)(26)

[^ ]”表示匹配指定范圍外的任意單個字符,它與”[ ]”的含義正好相反。比如“[^0-9]”表示匹配單個非數(shù)字字符,與[0-9]的含義這正好相反。

正則表達式基本寫法(常用正則表達式超強整理)(27)

轉(zhuǎn)義符

測試文件4內(nèi)容如下:

# cat reg4abca!@#a...bca*bc

正則表達式基本寫法(常用正則表達式超強整理)(28)

”與正則中的符號結(jié)合在一起時,就表示這個符號本身的含義。比如”.”在正則表達式中代表任意單個字符,如果我們需要匹配字母a后面兩個.就需要用到轉(zhuǎn)義符””。

正則表達式基本寫法(常用正則表達式超強整理)(29)

案例

我們需要從ifconfig命令的結(jié)果中找出IPv4格式的IP地址,正則表達式可以如下進行編寫:

([0-9]{1,3}.){3}[0-9]{1,3}

正則表達式基本寫法(常用正則表達式超強整理)(30)

這里可以分為三部分進行理解:

  • 第一部分”([0-9]{1,3}.)”表示一個最少為1位數(shù)字,最多為3位數(shù)字的字符串,并且這個字符串后面跟隨了一個”.”,我們把這個帶有點的數(shù)字字符串當做一個整體。
  • 第二部分”{3}”表示之前的字符需要連續(xù)出現(xiàn)3次,當它與第一部分的正則結(jié)合在一起時,表示符合第一部分正則的字符串需要連續(xù)出現(xiàn)3次。
  • 第三部分的正則為”[0-9]{1,3}”表示一個最少為1位數(shù)字,最多為3位數(shù)字的字符串。

這樣我們就匹配出來了IP地址。

以上就是關(guān)于正則表達式的介紹了,相信在工作中你一定會用到它!

歡迎分享轉(zhuǎn)載→http://m.avcorse.com/read-226579.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖