<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Regular Expression、regex或regexp,(縮寫為RE) 是指一個用來描述或者匹配一系列符合某個句法規則的字符串的單個字符串。 計算機里處理文本和數據是非常重要的事情。 ### 一般匹配規則:[?](http://uliweb.clkg.org/tutorial/view_chapter/192#title_0-0-1) 1 字符串匹配 "abcd" 這種是沒有特殊規則,就是完全按照 字符去匹配。 例如:"hello,abcd" 可以匹配。 "hello,abc" 匹配不上。 ~~~ >>> import re >>> re.search("abcd","hello,abcd") <_sre.SRE_Match object at 0x994e2c0> >>> re.search("abcd","hello,abdc") ~~~ 2 選擇匹配 gray|grey ,“gray” 和"grey " 都能匹配上。 或者用 gr(a|e)y 規則來匹配后面2個單詞 "gray","grey"。 ~~~ >>> print re.search("gray|grey","gray") <_sre.SRE_Match object at 0x994e2c0> >>> print re.search("gray|grey","grey") <_sre.SRE_Match object at 0x994e2c0> >>> print re.search("gray|grey","grcy") None >>> print re.search("gr(a|e)y","gray") <_sre.SRE_Match object at 0xb77268a0> ~~~ 3 數量限定 ~~~ ‘+’ 加號代表前面的字符必須至少出現一次。(1次、或多次)。例如,“goo+gle”可以匹配google、gooogle、goooogle等; ? 問號代表前面的字符最多只可以出現一次。(0次、或1次)。例如,“colou?r”可以匹配color或者colour; ‘*’ 星號代表前面的字符可以不出現,也可以出現一次或者多次。(0次、或1次、或多次)。例如,“0*42” 可以匹配42、042、0042、00042等。 ~~~ ~~~ >>> re.search("goo+gle","google") <_sre.SRE_Match object at 0xb7717e20> >>> re.search("goo+gle", "gogle") >>> re.search("goo+gle", "goooogle") <_sre.SRE_Match object at 0x994e2c0> ~~~ “?” 例子 ~~~ >>> re.search("colou?r","color") <_sre.SRE_Match object at 0xb7717e20> >>> re.search("colou?r","colour") <_sre.SRE_Match object at 0x994e2c0> >>> re.search("colou?r","colouur") >>> #對比 "+" >>> re.search("colou+r","colouur") <_sre.SRE_Match object at 0xb7717e20> >>> re.search("colou+r","color") ~~~ “*” 例子: ~~~ >>> re.search("goo*gle","google") <_sre.SRE_Match object at 0xb7717e20> >>> re.search("goo*gle","gooogle") <_sre.SRE_Match object at 0x994e2c0> ~~~ 4 [...] 括號里面包含的任意字符 b[aeou]d 匹配"bad","bed","bod","bud" ~~~ >>> re.search("b[aeoud]d","bad") <_sre.SRE_Match object at 0x994e2c0> >>> re.search("b[aeoud]d","bed") <_sre.SRE_Match object at 0xb7717e20> >>> re.search("b[aeoud]d","bud") <_sre.SRE_Match object at 0x994e2c0> >>> re.search("b[aeoud]d","bcd") >>> re.search("b[aeoud]d","baed") ~~~ 匹配 [0-9],[0-9a-z] ~~~ >>> re.search('b[0-9a-z]d',"b12d") >>> re.search('b[0-9a-z]d',"b1d") <_sre.SRE_Match object at 0xb7717e20> >>> re.search('b[0-9a-z]d',"bad") <_sre.SRE_Match object at 0x994e2c0> ~~~ 5 多字符匹配 {n} [0-9]{3} : []以內的字母、數字在后面字符串中出現的次數。 “hd543”,符合規則。 "hello32rew",不符合規則。 ~~~ >>> re.search("[0-9]{3}","hd23") >>> re.search("[0-9]{3}","hd232") <_sre.SRE_Match object at 0x92ec2c0> >>> re.search("[0-9]{3}","hd234") <_sre.SRE_Match object at 0xb77bee20> >>> >>> re.search("[0-9]{4}","hd234") >>> re.search("[0-9d]{4}","hd234") <_sre.SRE_Match object at 0x92ec2c0> ~~~ 6\. []{m,n}, 按照[]內規則匹配 m---n之間個數,m必須小于n。 7 "." 匹配任何1個字符。 ~~~ >>> import re >>> re.search('b.b',"beb") <_sre.SRE_Match object at 0xb7280170> >>> re.search('b.b',"bab") <_sre.SRE_Match object at 0xb7280368> >>> re.search('b.b',"badb") >>> re.search('b..b',"badb") <_sre.SRE_Match object at 0xb7280170> >>> ~~~ 8 “^” 匹配字符串的開始 ~~~ >>> re.search('^bad',"badb") <_sre.SRE_Match object at 0xb7280368> >>> re.search('^ad',"badb") >>> re.search('^.ad',"badb") <_sre.SRE_Match object at 0xb7280170> >>> re.search('^..ad',"badb") >>> ~~~ 9 "$" 匹配字符串的結尾 ~~~ >>> re.search('adb$',"badb") <_sre.SRE_Match object at 0xb7280170> >>> re.search('.db$',"badb") <_sre.SRE_Match object at 0xb7280368> ~~~ 10 ~~~ '\d' 匹配數字 ‘\D' 匹配非數字 ~~~ ~~~ >>> re.search('\d',"badec3b2v432") <_sre.SRE_Match object at 0xb7280368> >>> re.search('\D',"badec3b2v432") <_sre.SRE_Match object at 0xb7280170> >>> ~~~ 11 ~~~ '\w' 匹配任意數字和字母 '\W' 非數字和字母 ~~~ 12 ~~~ '\s' 匹配任意空白字符,相當于 [ \t\n\r\f\v] \S 匹配任意非空白字符,相當于 [^ \t\n\r\f\v] ~~~ ### 使用方法[?](http://uliweb.clkg.org/tutorial/view_chapter/192#title_0-0-2) A) ~~~ compiled_pattern = re.compile(pattern) result = compiled_pattern.match(string) ~~~ B) ~~~ result = re.match(pattern, string) ~~~ pattern,就是上面提到的規則。 除了match,以為還有幾個函數,我們一起做說明: match() 函數只在字符串的開始位置嘗試匹配正則表達式,也就是只報告從位置 0 開始的匹配情況。 search() 函數是掃描整個字符串來查找匹配。如果想要搜索整個字符串來尋找匹配,應當用 search()。 但search 返回第一個匹配的字符串。 split() 將字符串按照規則分成list。如果按照規則里面找不到,就不分割,返回原字符串。 ~~~ >>> re.split(":","test:test1:test2") ['test', 'test1', 'test2'] ~~~ findall() 函數搜索整個字符串,返回所有匹配項。返回一個list。 sub() 函數 查找并替換 ~~~ >>> re.sub("one","num","one world, on dream",1) 'num world, on dream' >>> re.sub("one","num","one world, one dream",1) 'num world, one dream' >>> re.sub("one","num","one world, one dream",2) 'num world, num dream' >>> ~~~ 可以: ~~~ >>> p = re.compile( '(one|two|three)') >>> p.sub( 'num', 'one word two words three words') 'num word num words num words' ~~~ 匹配網址的實例: ~~~ #coding=utf-8 import re urls=r'fdsa<a class="pic" href= "http://www.jeapedu.com ">... </a> ' s = re.findall("<a.*href.*>",urls) print s ~~~ 非貪婪匹配 + 后結束標記 ~~~ all_buf = re.findall(r'<a.*?href.*?=(.*?)[> ]',buf) for n in all_buf: print n ~~~ 簡單匹配 @ 后面的用戶正則 ~~~ #s = "@fdsa;1232" s = "fdsfds@fdsa你好.1, 232" a = re.findall("""@(.*?)(?=[;,| '".?])""",s) print a[0] ~~~ 如果@后面沒有任何特殊符號,就結束了匹配方法,加了$: ~~~ >>> a= re.compile("@(.*?)(?=[ ,'$]|$)") >>> print a.findall("@sina @abd, @fds") ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看