亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

詳解Ruby中正則表達式對字符串的匹配和替換操作

2020-10-29 19:36:00
字體:
來源:轉載
供稿:網友

正則匹配

說起Ruby當然要提起它的正則表達式機制,正則表達式作為一個強大的匹配語言已經越來越多的使用到不同的領域當中,從字符串驗證,匹配,到網頁抽取等。雖然有些人詬病與正則表達式的匹配效率,但是考慮到正則的強大匹配能力也就無所謂了。

說起Ruby正則表達式不就不能不說起Ruby的=~和match兩種匹配方式,我們還是用實例來說明一下這兩種匹配方式的區別吧。先來說一說=~的用法吧:

message="afhadhffkdf414j" regex=/[a-z](/d{3})[a-z]/ puts regex=~message message="afhadhffkdf414j" regex=/[a-z](/d{3})[a-z]/ puts regex=~message 

在Ruby當中是用//來表示正則表達式匹配語句的。大家可以運行一下,上面的語句是匹配三個數字兩邊都是小寫字母的一個字符串。我們運行上面代碼,將會出現結果10.你一定很奇怪,為什么會出現10這個結果,這就是=~的魅力,他是將匹配結果的首次出現位置打印出來。

那下面我們來看看match吧:

message="afhadhffkdf414j" regex=/[a-z](/d{3})[a-z]/ puts regex.match(message)  message="afhadhffkdf414j" regex=/[a-z](/d{3})[a-z]/  puts regex.match(message) 

我們來看看輸出結果吧:f414j。該字符串表示的正則語句匹配的所有符合規則的結果集。不知道大家注意到沒,我們在正則表達式里面用到了括號,我們希望抽取出三個數字就可以了。當然這也很簡單,我們只需要在上面的代碼當中稍作修改即可:

message="afhadhffkdf414j" regex=/[a-z](/d{3})[a-z]/ regex.match(message) puts $1  message="afhadhffkdf414j" regex=/[a-z](/d{3})[a-z]/ regex.match(message) puts $1 

結果自然是414.為什么要使用$1而不是$0呢,我們看看$0的結果吧。

C:/Users/Administrator/Documents/NetBeansProjects/RubyApplication1/lib/regex.rb

 
它是輸出的該對象信息。

下面又出現了一個新的情況,假設一個字符串當中有很多符合規則的信息怎么辦呢。上面的語句只能匹配出最先找到的結果,而我們需要把所有的結果都打印出來怎么辦呢?剛開始我受java的影響,認為match的結果會是一個集合,所以怎么考慮也沒有整出來。后來發現有一個scan方法。代碼如下所示:

message="afhadhffkdf414j9tr3j43i3433094jwoert223jwew123dfdf" regex=/[a-z](/d{3})[a-z]/ message.scan(regex).each{|m|puts"Theresultis#{m[0]}"}  message="afhadhffkdf414j9tr3j43i3433094jwoert223jwew123dfdf" regex=/[a-z](/d{3})[a-z]/ message.scan(regex).each{|m|puts"Theresultis#{m[0]}"} 

很簡單,結果就是:

Theresultis414 Theresultis223 Theresultis123  Theresultis414 Theresultis223 Theresultis123 

怎么樣,很方便吧。很簡單的就把所有的匹配結果都抽取出來了。

正則表達式的分組

可以對正則表達式進行分組,并在匹配成功后把分組的值存儲到$1,$2,$3,$4.......

print $1,"/n",$2 if "a1b2c3d4e5" =~ /(/w{2})(/w*)/ 

字符串的正則替換:

print "abcd".sub(//w/,"9") print "/n"  print "abcd".gsub(//w/,"9") 


正則中的特殊全局變量:

  •     $1,$2,$3....分組匹配文本
  •     $`   匹配文本之前的文本
  •     $'    匹配文本之后的文本
print <pre name="code" class="ruby">,"/n",{1},"/n", if "ab9cd" =~ //d/ 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产视频亚洲视频| 国产一区二区三区在线看| 国产精品第七影院| 国产一区二区三区视频| 日韩欧美在线免费| 久久影视电视剧凤归四时歌| 国产精品视频网站| 91美女片黄在线观看游戏| 久久成人一区二区| 国产精品视频1区| 日韩av影视综合网| 国产精品入口福利| 欧美成人午夜激情| 日韩精品免费视频| 国产视频自拍一区| 欧美午夜视频在线观看| 精品香蕉在线观看视频一| 亚洲午夜久久久久久久| 国产精品白丝jk喷水视频一区| 欧美精品xxx| 亚洲码在线观看| 永久555www成人免费| 欧美一级电影免费在线观看| 狠狠躁夜夜躁人人爽天天天天97| 一本大道亚洲视频| 九九久久久久99精品| 亚洲老司机av| 日韩精品中文字幕有码专区| 亚洲片在线观看| 欧美又大又粗又长| 久久99热精品| 国产中文欧美精品| 国内揄拍国内精品少妇国语| 久久精品在线播放| 81精品国产乱码久久久久久| 亚洲精品福利在线| 欧美日韩国内自拍| 国产欧美 在线欧美| 成人午夜一级二级三级| 91精品国产综合久久久久久久久| 欧美视频免费在线观看| 色综合久久久888| 九九热最新视频//这里只有精品| 亚州成人av在线| 久久综合色影院| 国模视频一区二区| 黑人巨大精品欧美一区二区三区| 亚洲精品videossex少妇| 亚洲一区二区三区久久| 1769国内精品视频在线播放| 国产成人精品视频| 91精品国产高清久久久久久91| 亚洲一区二区三区视频| 日韩av片免费在线观看| 欧美一级黑人aaaaaaa做受| 亚洲一区二区国产| 亚洲成人av在线| 欧美成年人视频网站欧美| 亚洲欧美色图片| 欧美日韩国产区| 亚洲精品一区二区网址| 色综合久久中文字幕综合网小说| 中文字幕一区日韩电影| 欧洲永久精品大片ww免费漫画| 国产成人亚洲综合青青| 亚洲视频欧洲视频| 中文字幕一区日韩电影| 欧美成人久久久| 久久99精品久久久久久青青91| 久久久久久久91| 亚洲爱爱爱爱爱| 在线精品国产成人综合| 成人有码在线播放| 欧美裸体xxxx| 日本精品久久电影| 欧美精品久久久久a| 91国产精品91| 中文字幕少妇一区二区三区| 国产精品99久久久久久人| 亚洲黄色av女优在线观看| 国产偷亚洲偷欧美偷精品| 中文字幕日韩高清| 欧美中文字幕在线视频| 国产美女主播一区| 亚洲人av在线影院| 亚洲色图欧美制服丝袜另类第一页| 亚洲国产高清高潮精品美女| 国产精品羞羞答答| 欧美性xxxxx| 久久久久999| 国产精品爱久久久久久久| 久久精品这里热有精品| 亚洲成人av在线播放| 欧美日韩国产va另类| 久久午夜a级毛片| 亚洲香蕉av在线一区二区三区| 欧美国产日韩免费| 国产精品久久久久国产a级| 97人洗澡人人免费公开视频碰碰碰| 欧美老肥婆性猛交视频| 国产日韩精品综合网站| 日韩电影在线观看免费| 亚洲精品国偷自产在线99热| 日韩精品免费在线播放| 久久国产加勒比精品无码| 日韩精品亚洲元码| 欧美精品一本久久男人的天堂| 色噜噜国产精品视频一区二区| 亚洲精品国精品久久99热一| 久久精品欧美视频| 欧美性生活大片免费观看网址| 国产香蕉97碰碰久久人人| 日韩在线观看免费高清| 亚洲欧美制服第一页| 亚洲人精选亚洲人成在线| 久久综合五月天| 亚洲在线免费看| 亚洲国产一区自拍| 91精品国产99| 亚洲自拍偷拍网址| 色哟哟入口国产精品| 日韩精品在线免费播放| 一本色道久久综合狠狠躁篇怎么玩| 日韩欧美aaa| 在线成人激情黄色| 欧美人与性动交a欧美精品| 国产精品久久电影观看| 欧美一区二区三区精品电影| 97在线观看免费| 久久久av免费| 免费不卡在线观看av| 国产日韩在线精品av| 久久久久99精品久久久久| 欧美另类极品videosbestfree| 国产欧美va欧美va香蕉在| 91免费版网站入口| 91九色视频导航| 欧美成人激情在线| 国产精品视频999| 国产精品永久免费在线| 国产日产欧美a一级在线| 啪一啪鲁一鲁2019在线视频| 国产精品va在线播放我和闺蜜| 日韩精品一二三四区| 国产91精品黑色丝袜高跟鞋| 欧美成人一区二区三区电影| 欧美成人免费小视频| 国产视频丨精品|在线观看| 欧美性猛交xxxx久久久| 欧美有码在线视频| 国产精品69久久| 欧美午夜精品久久久久久久| 国产成人极品视频| 欧美激情视频在线免费观看 欧美视频免费一| 成人福利免费观看| 高清欧美性猛交| 日韩av不卡电影| 日韩成人在线免费观看| 亚洲2020天天堂在线观看| 久久久综合免费视频| 国产91ⅴ在线精品免费观看| 国产mv免费观看入口亚洲| 国产成人精彩在线视频九色| 国产欧美 在线欧美|