用正則匹配一串字串中的ip位址

2021-09-09 00:22:25 字數 848 閱讀 6482

ip位址有4段組成,每一段數字的範圍為0~255,在一段文字中提取ip位址可以這樣

$src = 'src = alsdlk ks sdf2.3.3.4

234.193.1.120.1232

d.233.43.23.34

23.34.23.33 dfkl lksd\flk \lkjs.c lksf.c \

kldslfj.c lkdslkf.c lkkldsf.c';

$src =~ m/((?\b(([01]?\d\d?|2[0-4]\d|25[0-5])\.)([01]?\d\d?|2[0-4]\d|25[0-5]))\b(?![\w.])/;

print "1: ".$1."\n";

print "2: ".$2."\n";

print "3: ".$3."\n";

print "4: ".$4."\n";

效果為:

1: 23.34.23.33

2: 23.

3: 23

4: 33

使用語言為perl

注:該正規表示式被分成四部分

第一部分:是乙個環視,表示在\b(單詞的開始符號)前不能有的字元,即在\b前不能有點號「.」或字母

第二部分:是三個選擇分支,第乙個匹配是的0~199的範圍,第二個分支匹配200~249的範圍,

第三個匹配250~255的範圍,在後面有乙個,表示連續出現3個這樣的字串

第三部分跟第二部分一樣,只是匹配沒有點號「.」

第四部分用了乙個環視:表示在\b(單詞結束符號)後不應該出現點號"."或字母

注意:環視不會捕獲字串,即不會儲存在$x中的

字串正則匹配

匹配1個或多個 匹配乙個 abc a b false abc a?c true abc a true ab a false 重點就是處理掉 如果匹配的時候 後面沒有字元了那返回真,如果有的話,那麼很簡單,從str中從後往前拿pattern 中 從 開始到pattern末尾個字元個數的字元,繼續遞迴匹...

求一串字串中的最長子串

運用了集合來操作 計算的字串,中文字串也可以 string s asdfasdf char chararray s.tochararray mapstring listmap new hashmapstring 1.為每個腳標開始的字元建立乙個list集合,並用map集合儲存腳標與這個對應集合 fo...

正則匹配字串無匹配不到 字串匹配演算法

我們先說下定義,比如說我們要在a字串中查詢字串b,那麼a就是主串,b就是模式串 我們把主串的長度記為n,把模式串的長度記為m,n m bf brute force 中文名 暴力匹配演算法,樸素匹配演算法 簡單的說bf的演算法就是在主串中查詢起始位置是0,1,2,n m個且長度為m的n m 1個子串,...