正規表示式(二)

2021-10-14 01:54:10 字數 1704 閱讀 3136

四、附錄

子表示式的作用是把乙個表示式中相關的部分組合在一起。用()來定義。常見用途為:

a) 對重複次數元字元的作用物件做出精確的設定和控制,例如:(\d.)\d來粗略匹配ip位址

b) 對|操作符的or條件做出準確的定義。另外子表示式可以巢狀使用、頻繁使用子表示式會降低效率

回溯引用允許正規表示式引用前面的匹配結果 應用場景:

a) 有一段文字,你想把這段文字中所有連續重複出現的單詞找出來。

文字:this is a block of of text, serveral words here are are repeated, and and they should not be.

正規表示式:

[ ]+(\w+)[ ]+\1

結果:匹配出of of, are are, and and

解釋:[ ]+匹配乙個或多個空格,\w+匹配乙個單詞,\w+是放在()中的,是個子表示式,這裡子表示式的作用是將這 一部分單獨劃分出來供後面引用,\1是乙個回溯引用,匹配\w+具體匹配的內容,當(\w+)匹配到of時,\1就是of。

b) 匹配下面html中的標題內容(h1-6標籤)

>

>

welcome to my homepageh1

>

>

coldfusionh3

>

body

>

如果使用正規表示式 .*?,那麼第二行也會被匹配進去,這很明顯不是我們想要的,因為第二行的h2和h3標籤不匹配。

我們應該使用.*?,這樣localhost is 127.0.0.1

正則:

(

((\d)|

(1\d)|

(2[0

-4]\d)|25

[0-5

]))\.)

((\d)|

(1\d)|

(2[0

-4]\d)|25

[0-5

]))

解釋:

\d匹配0-99,1\d匹配100-199,2[0-4]\d匹配200-249,25[0-5]匹配250-255

32正則:

?//[-\w.]+(:\d+)?(/([\w/_.]*)?)?結果:

第1、2、3以及第4行到?為止

c) 郵箱位址

(\w+\.

)*\w+@(\w\.)+

[a-za-z]

+

d) html注釋

.*?-

>

e) 匹配中文

[\u4e00-\u9fa5]

正規表示式(二) 正規表示式的切割

切割 還記得stirng的split的方法嗎.可以按照 空格,豎線 對字串進行切割.正規表示式的切割 是指,我們按照正規表示式的規則對字串來進行一些複雜的切割 比方說現在我想按照多個空格來進行切割 string str zhangsan lisei wangwu string reg s s在這裡代...

正規表示式(二)

三 正規表示式高階 1.後向引用 exp 匹配exp,並捕獲文字到自動命名的組裡,命名規則為從左向右 從1開始依次分組,分組0對應整個正規表示式 n 重複搜尋前面分組n匹配的文字 例如 b w b s 1 b,編號為1的分組為 b w b,表示乙個單詞,整個表示式用來匹配重複的單詞,像go go,或...

正規表示式 二

正規表示式 二 一 sed 可以將資料進行取代 刪除 新增 擷取 語法 sed nefr 動作 n 使用安靜模式。在一般sed的用法中,所有來自stdin的資料一般都會被列出到螢幕上。但是加上 n引數後,則只有經過sed特殊處理的哪一行才會被列出 e 直接在指令列模式上進行sed的動作編輯 f 直接...