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個子串,...