學習正規表示式的最好方法是從例子開始,理解例子之後再自己對例子進行修改,實驗。下面給出了不少簡單的例子,並對它們作了詳細的說明。
假設你在一篇英文**裡查詢hi
,你可以使用正規表示式hi
。這是最簡單的正規表示式了,它可以精確匹配這樣的字串:由兩個字元組成,前乙個字元是h,後乙個是i
。通常,處理正規表示式的工具會提供乙個忽略大小寫的選項,如果選中了這個選項,它可以匹配hi
,hi,hi
,hi這四種情況中的任意一種。
不幸的是,很多單詞裡包含hi
這兩個連續的字元,比如him
,history
,high
等等。用hi
來查詢的話,這裡邊的hi
也會被找出來。如果要精確地查詢hi這個單詞
的話,我們應該使用/bhi/b。/b
是正規表示式規定的乙個特殊**(好吧,某些人叫它元字元,metacharacter),代表著單詞的開頭或結尾,也就是單詞的分界處
。雖然通常英文的單詞是由空格或標點符號或換行來分隔的,但是/b
並不匹配這些單詞分隔符中的任何乙個,它只匹配乙個位置。(如果需要更精確的說法,/b
匹配這樣的位置:它的前乙個字元和後乙個字元不全是(乙個是,乙個不是或不存在)/w
)假如你要找的是hi後面不遠處跟著乙個lucy
,你應該用/bhi/b.*/blucy/b
。這裡,.
是另乙個元字元,匹配除了換行符以外的任意字元
。*同樣是元字元,不過它代表的不是字元,也不是位置,而是數量——它指定*前邊的內容可以連續重複出現任意次以使整個表示式得到匹配
。因此,.*
連在一起就意味著任意數量的不包含換行的字元
。現在/bhi/b.*/blucy/b
的意思就很明顯了:先是乙個單詞hi,然後是任意個任意字元(但不能是換行),最後是lucy這個單詞
。如果同時使用其它的一些元字元,我們就能構造出功能更強大的正規表示式。比如下面這個例子:
0/d/d-/d/d/d/d/d/d/d/d
匹配這樣的字串:以0開頭,然後是兩個數字,然後是乙個連字型大小「-」,最後是8個數字
(也就是中國的**號碼。當然,這個例子只能匹配區號為3位的情形)。
這裡的/d
是乙個新的元字元,匹配任意的數字(0,或1,或2,或……)
。-不是元字元,只匹配它本身——連字型大小。
為了避免那麼多煩人的重複,我們也可以這樣寫這個表示式:0/d-/d
。 這裡/d
後面的(
)的意思是前面/d
必須連續重複匹配2次(8次)
。寫了乙個正規表示式後,你需要測試它是否符合要求:
正規表示式的語法很令人頭疼,即使對經常使用它的人來說也是如此。由於難於讀寫,容易出錯,所以很有必要建立一種工具來測試正規表示式。
下面是regex tester執行時的截圖:
學習第二天
linux系統的檔案型別及許可權的相關知識 1.普通檔案 l 連線檔案 d 資料夾 表示不同的檔案型別 2.檔案許可權 r 可讀 w 可寫 x 可執行 3.chmod 修改檔案許可權,修符號或者使用八進位制 linux的基礎命令 cd 切換目錄 ls 檢視內容 表示當前目錄 上一級目錄等 touch...
第二天學習
快捷鍵 功能ctrl alt t 啟動終端 print 全屏截圖 ctrl alt a 截圖alt tab 切換視窗 shift alt tab 反向切換視窗 super d 顯示桌面 super e 檔案管理器 super l 屏鎖介面 super up 最大化視窗 super down 恢復視窗...
學習第二天
製表符和換行符 換行符 n 的作用是是來游標跳到下乙個新行,輸入完一行內容後游標下移一行 而製表符 t 的作用是 跳格 即到自下乙個 製表位置 在系統中乙個 製表區 佔8列,相當於4個或8個空格符。正斜槓和反斜槓 正斜槓 是斜率是正數的斜槓,反斜槓 是斜率為負數的斜槓 這個世界上就只有microso...