1顯式的正則表達(dá)式調(diào)用
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到蘭州網(wǎng)站設(shè)計(jì)與蘭州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋蘭州地區(qū)。有兩個(gè)對(duì)象,一個(gè)是模式對(duì)象,一個(gè)是匹配結(jié)果對(duì)象
re = /(\d+):(\d+)/ md = re.match("Time: 12:34am") p md, md[0], md[1], md[2], md[3], md.pre_match, md.post_match
2Perl式的正則表達(dá)式調(diào)用
這里面隱含了re對(duì)象、以及match對(duì)象
message = "Time: 12:34am" message =~ /(\d+):(\d+)/ p $&, $1, $2, $3, $`, $'
3兩個(gè)細(xì)節(jié)
=~表達(dá)式是有返回值的,如果不匹配返回nil,匹配則返回第一個(gè)字符的位置
message = "Time: 12:34am" a = (message =~ /(\d+):(\d+)/) p a
ruby是在match對(duì)象和$1這樣的對(duì)象之間建立了一座橋梁,即$~
re = /(\d+):(\d+)/ md1 = re.match("Time: 12:34am") md2 = re.match("Time: 10:30pm") p $1, $2 $~ = md1 p $1, $2
4測(cè)試正則表達(dá)式匹配效果的代碼
def show_regexp(a, re) if a =~ re "#{$`}<<#{$&}>>#{$'}" else "no match" end end p show_regexp("abc\ndef\nghi", /abc/)
5錨點(diǎn)
參考http://fsjoy.blog.51cto.com/318484/68433/
^$是真正意義上行的起始點(diǎn)和結(jié)束點(diǎn)
\A\z是真正意義上字符串的起始點(diǎn)和結(jié)束點(diǎn)
\Z忽略字符串結(jié)束時(shí)的那個(gè)回車符,但是字符串中間的回車符不忽略
def show_regexp(a, re) if a =~ re "#{$`}<<#{$&}>>#{$'}" else "no match" end end p show_regexp("hello world fuck u down towndown gardon ", /gardon\z/)
http://www.rubular.com/
這個(gè)網(wǎng)站測(cè)試錨點(diǎn)時(shí)回車必須敲出來(lái),而不是用\n,應(yīng)該是字符串識(shí)別的問(wèn)題。
用show_regexp是直接回車,還是\n效果是一樣的。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。