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

首頁 > 學院 > 開發設計 > 正文

正則表達式——極速入門

2019-11-17 03:52:03
字體:
來源:轉載
供稿:網友
正則表達式:

正則表達式可以讓用戶通過使用一系列的特殊字符構建匹配模式,然后把匹配模式與數據文件、程序輸入以及WEB頁面的表單輸入等目標對象進行比較,根據比較對象中是否包含匹配模式,執行相應的程序。正則以其簡單、實用、快速深得廣大編程人員的熱愛。

編寫正則一些思維:

1、首先,確定規則。你需要匹配一個什么樣字符串,它有哪幾部分構成,它有哪些特征。

2、提出最小單位。有的時候,一些匹配規則是重復的,我們可以試著找到共同點,規劃為一條規則。

3、根據其規則、最小單位,逐一寫出正則

4、將這些單位正則組合統一,構成你想要的完整正則。



在這里我們就需要了解一些基本的標記和用法,任何的規則都是用基本標記組合而成的。而正則的標記也很簡單,大家不妨了解一下。



正則表達式中常用的標記



1 正則表達式中常用的標記 2  ^    |   行或字符串開頭 3 $    |   行或字符串末尾 4  .    |   除換行符外的字符 5  /w   |   單詞字符 (數字、字母或下劃線) 6  /W   |   非單詞字符 7  /d   |   數字(等同于【0-9】) 8  /D   |   非空白字符 9 10  /A   |   字符串開頭11  /Z   |   字符串末尾或最后的換行符錢12  /z   |   字符串末尾13 14  /s   |   空白字符15  /S   |   非空白字符16 17  /b   |   單詞邊界(【】外)18  /B   |   非單詞邊界19  /b   |   退格(在【】內)20 []   |   集合中的任何一個字符,中間使用連字符,則表示范圍,如:[0-9],[a-z]21  ?    |   0或1個之前的表達式22  |    |   或23 ( ) |   子表達式編組24 25  *    |   零或多個之前的表達式26  *?   |   零或多個之前的表達式(非貪婪)27  +    |   1個或多個之前的表達式28  +?   |   1個或多個之前的表達式(非貪婪)29 {m,n}|   m-n個之前的表達式30 {m,n}? | m-n個之前的表達式(非貪婪的)31 32 33 還有{?=} {?!} (?>) (?#) (?imx-imx)等


最基本的實例:

1 #匹配整個字符串 2 puts /ruby/ =~ "ruby"   # 0 3 puts /ruby/ =~ "Ruby"   # nil 4  5 #匹配行或字符串開頭與結尾 6 str = "abcdef" 7 puts str 8 puts /^abc/ =~ str   # 0 9 puts /def$/ =~ str   # 310 11 str = "abc/ndef/n"12 puts /^abc/ =~ str   # 013 puts /def$/ =~ str   # 414 puts /abc/ =~ str    # 015 puts /def/ =~ str    # 416 17 #匹配字符串本身的開頭和結尾18 str = "abc/ndef/n"19 puts //Aabc/ =~ str    # 020 puts /def/Z/ =~ str    # 421 puts /def/z/ =~ str    # nil22 23 #匹配單詞字符24 puts "匹配單詞字符"25 pattern = //w/26 puts pattern =~ "abc"  # 027 puts pattern =~ "."    # nil28 29 #匹配整數30 # /d 數字31 # /D 非數字32 puts "匹配數字"33 puts //d/ =~ "122"   #034 puts //D/ =~ "122"   #nil35 puts //D/ =~ "abc"   #036 37 38 #邊界39 str = "This is your friend!"40 puts str41 puts str.gsub(//b/,"|")   # |This| |is| |your| |friend|!42 puts str.gsub(//B/,"-")   # T-h-i-s i-s y-o-u-r f-r-i-e-n-d!-43  


限定符實例



1 puts "限定符" 2 puts "限定符:*" 3 puts /(abc)*/ =~ "a"      # 0 4  puts /(abc)*/ =~ "abc"    # 0 5   6  7 puts "限定符:+" 8 puts /(abc)+/ =~ "a"      # nil 9  puts /(abc)+/ =~ "abc"    # 010  11 puts "限定符:?"12 puts /(abc)?/ =~ "c"      # 013  puts /(abc)?/ =~ "abc"    # 014 15 16 puts "限定符: {n}"17 puts /(abc){2}/ =~ "abc" # nil18 puts /(abc){2}/ =~ "abcabc" # 019 20 puts "限定符: {n,}"21 puts /(abc){2,}/ =~ "abc" # nil22 puts /(abc){2,}/ =~ "abcabc" # 023 24 puts "限定符: {n,m}"25 puts /(abc){2,3}/ =~ "abc" # nil26 puts /(abc){2,3}/ =~ "abcabcabc" # 027 28 puts "限定符: *?"29 puts /(abc)*?/ =~ "a"      # 030 puts /(abc)*?/ =~ "abcabc" # 031 32 puts "限定符: +?"33 puts /(abc)+?/ =~ "a"      # nil34 puts /(abc)+?/ =~ "abcabc" # 035 36 puts "限定符: ??"37 puts /(abc)??/ =~ "a"      # 038 puts /(abc)??/ =~ "abcabc" # 039 40 41 #匹配, {1} {3}42 # {3}能匹配,那{1}肯定能匹配,反過來不成立43 # 匹配范圍:{1} > {3}


常用實例:



1 puts "例子" 2 #匹配電話號碼: 3 #一般中國的電話號碼為7-8位,區號3-4位整數,區號第一位是0,中間用分隔符‘-’ 4 #注意首尾限制符 5 pattern = /^0/d{2,3}-/d{7,8}$/ 6 puts pattern =~ "010-82809999"   # 0 7 puts pattern =~ "00010-82809999" # nil 8  9 #匹配手機號碼10 # 1開頭,第二位為3、5、8,11位數字11 pattern = /^1[3,5,8]/d{9}$/12 puts pattern =~ "15810990001"  #013 14 #身份證號碼15 pattern = //d{18}|d{15}/16 17 #匹配ip18 #四組不大于255的整數組成,中間用'.'分隔19 puts "IP"20 num = /^/d|[01]?/d{1,2}|2[0-4]/d|25[0-5]/21 pattern = /^(#{num}/.){3}#{num}$/22 #一個整體:pattern =   /^(^/d|[01]?/d{1,2}|2[0-4]/d|25[0-5]/.){3}^/d|[01]?/d{1,2}|2[0-4]/d|25[0-5]$/23 puts pattern =~ "127.0.0.1"    # 024 puts pattern =~ "254.255.255.255"25 26 #匹配電子郵箱27 pattern = /^/w+@/w+./w+$/         #這個沒有 ‘-’28 pattern = /^[/w-]+@[/w-]+.[/w-]+$/29 puts pattern =~ "abc@Gmail.com"  #030 31 # 匹配url32 # http://www.google.cn33 pattern = /(http|https|ftp):(////|////)((/w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((//[/~]*|//[/~]*)34 (/w)+)|[.](/w)+)*(((([?](/w)+){1}[=]*))*((/w)+){1}([/&](/w)+[/=](/w)+)*)*/35 36 puts pattern =~ "http://www.google.cn?uid=123"  #0


其它



貪婪的意義
1 puts "貪婪的" 2 #貪婪的,就是匹配盡可能長的字符串 3 # '.' 含義:除換行符外的字符 4 str = "where the sea meets the moon-blanch'd land" 5 puts str 6 match = /.*the/.match(str) 7 puts match[0]  #  where the sea meets the,*是貪婪的。如果不想貪婪就在其后加+ '?' 8 #*?非貪婪 9 match = /.*?the/.match(str)10 puts match[0]  # where the11 12 str.insert(0,"Hello /n")13 match = /.*?the/.match(str)14 puts match[0]   #where the


正負預查
1 #正負預查 2 puts "正負預查" 3 s1 = "New World Dictionary" 4 s2 = "New World Symphony" 5 s3 = "New World Order" 6  7 reg = /New World (?=Dictionary|Symphony)/ 8 m1 = reg.match(s1) 9 puts m1.to_a[0]      # "New World"10 m2 = reg.match(s2)11 puts m2.to_a[0]     # "New World"12 puts reg.match(s3)  # nil13 14 puts "負預查"15 16 reg = /New World (?!Symphony)/  # "New World "后面沒有“Symphony”17 puts reg.match(s1).to_a[0]     # "New World"18 puts reg.match(s2).to_a[0]     # nil19 puts reg.match(s3).to_a[0]     # "New World"

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本欧美一二三区| 亚洲人a成www在线影院| 精品久久久久久久久久久久久| 91成人精品网站| 亚洲电影免费观看高清| 欧美日韩美女视频| 日韩中文有码在线视频| 久久精品国产久精国产思思| 久久噜噜噜精品国产亚洲综合| 久久精品国产2020观看福利| 久久99国产精品自在自在app| 亚洲成人精品在线| 日本亚洲精品在线观看| 亚洲男人av电影| 少妇高潮 亚洲精品| 国产69精品久久久| 欧美一级大片在线免费观看| 夜夜嗨av一区二区三区免费区| 亚洲精品720p| 日韩成人网免费视频| 国产亚洲精品久久久久久| 日韩在线观看免费网站| 91日本在线观看| 91精品国产高清自在线| 亚洲电影免费观看高清完整版在线观看| 亚洲精品一区二区三区不| 亚洲精品日韩丝袜精品| 欧洲一区二区视频| 欧美老少配视频| 日韩大陆欧美高清视频区| 美女视频黄免费的亚洲男人天堂| 欧洲一区二区视频| 日韩精品在线免费| 欧美黄色三级网站| 欧美成人合集magnet| 欧美午夜电影在线| 中文字幕精品一区二区精品| 亚洲综合大片69999| 成人福利在线视频| 中文日韩电影网站| 国产精品一区二区女厕厕| 欧美国产中文字幕| 国产精品视频xxx| 综合久久五月天| 亚洲人成电影网站色www| 成人国产精品色哟哟| 亚洲第一区第二区| 亚洲片国产一区一级在线观看| 亚洲一二三在线| 日韩成人免费视频| 亚洲美女精品久久| 日韩a**中文字幕| 日韩精品中文字幕在线观看| 国产精品久久久久久亚洲调教| 久热精品视频在线观看一区| 亚洲人成网站在线播| 亚洲国产精品一区二区三区| 日韩精品在线私人| 亚洲精品久久在线| 久久久99免费视频| 免费99精品国产自在在线| 欧美日韩ab片| 亚洲久久久久久久久久| 91久久久国产精品| 欧美国产亚洲视频| 精品国产精品自拍| 亚洲成av人片在线观看香蕉| 在线成人激情视频| 中文字幕日韩欧美精品在线观看| 一区二区亚洲精品国产| 国产欧美最新羞羞视频在线观看| 亚洲国产精品专区久久| 日韩欧美精品免费在线| 国产日韩精品视频| 亚洲字幕一区二区| 欧美视频裸体精品| 欧美电影《睫毛膏》| 97在线免费观看视频| 日韩最新在线视频| 97精品久久久中文字幕免费| 日本欧美一二三区| 欧美一二三视频| 91精品在线看| 精品国产91久久久久久老师| 午夜精品久久久久久久久久久久久| 一本色道久久综合亚洲精品小说| 国产精品永久免费| 亚洲高清久久久久久| 国产日韩欧美视频在线| 中文在线资源观看视频网站免费不卡| 久久久久久中文字幕| 欧美成人精品h版在线观看| 国产精品视频yy9099| 韩国三级日本三级少妇99| 精品亚洲一区二区三区在线播放| 全亚洲最色的网站在线观看| 亚洲电影免费在线观看| 日本精品免费一区二区三区| 欧美野外wwwxxx| 亚洲成**性毛茸茸| 91精品国产综合久久香蕉的用户体验| 欧美日在线观看| 一区二区三区视频免费| 美女精品视频一区| 一本一本久久a久久精品牛牛影视| 久久久久久久爱| 国产精品久久久久久久久免费看| 色综合91久久精品中文字幕| 久久精品国产久精国产思思| 亚洲欧美精品一区二区| 国产精品综合网站| 亚洲国产精品视频在线观看| 亚洲新声在线观看| 欧美激情视频一区二区| 久久久免费在线观看| 亚洲情综合五月天| 国产精品一区电影| 欧美日韩国产va另类| 91久久久久久国产精品| 久久99精品久久久久久噜噜| 亚洲天堂一区二区三区| 欧美成在线观看| 中文一区二区视频| 91在线免费看网站| 久久91超碰青草是什么| 久久中文久久字幕| 奇米成人av国产一区二区三区| 国模私拍视频一区| 国产黑人绿帽在线第一区| 色爱精品视频一区| 亚洲性无码av在线| 亚洲www在线| 欧美激情第三页| 国语对白做受69| 亚洲剧情一区二区| 久久综合五月天| 亚洲精品自在久久| 91美女片黄在线观| 中文字幕精品一区久久久久| 国产精品日日摸夜夜添夜夜av| 奇米四色中文综合久久| 亚洲欧洲日产国产网站| 色www亚洲国产张柏芝| 92福利视频午夜1000合集在线观看| 九九热这里只有在线精品视| 国产精品福利在线观看网址| 日韩在线观看精品| 精品久久久久久久久久久久| 亚洲女性裸体视频| 国产精品白嫩初高中害羞小美女| 久久精品久久久久电影| 久久九九亚洲综合| 亚洲а∨天堂久久精品喷水| 97国产精品免费视频| 97精品视频在线播放| 97精品欧美一区二区三区| 国产日产欧美精品| 日韩视频中文字幕| 在线播放日韩专区| 国产精品久久国产精品99gif| 欧美成人午夜激情| 欧美日韩中文字幕在线视频| 日韩www在线| 自拍偷拍亚洲精品|