<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          阿里大佬整理的常用正則表達式大全

          共 9730字,需瀏覽 20分鐘

           ·

          2021-07-28 08:30

          點擊上方藍色字體,選擇“標星公眾號”

          優(yōu)質(zhì)文章,第一時間送達

          一、校驗數(shù)字的表達式 

          1. 數(shù)字:^[0-9]*$
          2. n位的數(shù)字:^\d{n}$
          3. 至少n位的數(shù)字:^\d{n,}$
          4. m-n位的數(shù)字:^\d{m,n}$
          5. 零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
          6. 非零開頭的最多帶兩位小數(shù)的數(shù)字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
          7. 帶1-2位小數(shù)的正數(shù)或負數(shù):^(\-)?\d+(\.\d{1,2})?$
          8. 正數(shù)、負數(shù)、和小數(shù):^(\-|\+)?\d+(\.\d+)?$
          9. 有兩位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{2})?$
          10. 有1~3位小數(shù)的正實數(shù):^[0-9]+(.[0-9]{1,3})?$
          11. 非零的正整數(shù):^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
          12. 非零的負整數(shù):^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
          13. 非負整數(shù):^\d+$ 或 ^[1-9]\d*|0$
          14. 非正整數(shù):^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
          15. 非負浮點數(shù):^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
          16. 非正浮點數(shù):^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
          17. 正浮點數(shù):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
          18. 負浮點數(shù):^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
          19. 浮點數(shù):^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
            

          二、校驗字符的表達式 

          1. 漢字:^[\u4e00-\u9fa5]{0,}$
          2. 英文和數(shù)字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
          3. 長度為3-20的所有字符:^.{3,20}$
          4. 由26個英文字母組成的字符串:^[A-Za-z]+$
          5. 由26個大寫英文字母組成的字符串:^[A-Z]+$
          6. 由26個小寫英文字母組成的字符串:^[a-z]+$
          7. 由數(shù)字和26個英文字母組成的字符串:^[A-Za-z0-9]+$
          8. 由數(shù)字、26個英文字母或者下劃線組成的字符串:^\w+$ 或 ^\w{3,20}$
          9. 中文、英文、數(shù)字包括下劃線:^[\u4E00-\u9FA5A-Za-z0-9_]+$
          10. 中文、英文、數(shù)字但不包括下劃線等符號:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
          11. 可以輸入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+ 12 禁止輸入含有~的字符:[^~\x22]+
           
          其它:
          .*匹配除 \n 以外的任何字符。
          /[\u4E00-\u9FA5]/ 漢字
          /[\uFF00-\uFFFF]/ 全角符號
          /[\u0000-\u00FF]/ 半角符號
           

          三、特殊需求表達式 

          1. Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
          2. 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
          3. InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
          4. 手機號碼:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
          5. 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
          6. 國內(nèi)電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
          7. 身份證號(15位、18位數(shù)字):^\d{15}|\d{18}$
          8. 短身份證號碼(數(shù)字、字母x結(jié)尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
          9. 帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
          10. 密碼(以字母開頭,長度在6~18之間,只能包含字母、數(shù)字和下劃線):^[a-zA-Z]\w{5,17}$
          11. 強密碼(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
          12. 日期格式:^\d{4}-\d{1,2}-\d{1,2}
          13. 一年的12個月(01~09和1~12):^(0?[1-9]|1[0-2])$
          14. 一個月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
          15. 錢的輸入格式:
          16. 1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
          17. 2.這表示任意一個不以0開頭的數(shù)字,但是,這也意味著一個字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$
          18. 3.一個0或者一個不以0開頭的數(shù)字.我們還可以允許開頭有一個負號:^(0|-?[1-9][0-9]*)$
          19. 4.這表示一個0或者一個可能為負的開頭不為0的數(shù)字.讓用戶以0開頭好了.把負號的也去掉,因為錢總不能是負的吧.下面我們要加的是說明可能的小數(shù)部分:^[0-9]+(.[0-9]+)?$
          20. 5.必須說明的是,小數(shù)點后面至少應(yīng)該有1位數(shù),所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$
          21. 6.這樣我們規(guī)定小數(shù)點后面必須有兩位,如果你認為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$
          22. 7.這樣就允許用戶只寫一位小數(shù).下面我們該考慮數(shù)字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
          23 8.1到3個數(shù)字,后面跟著任意個 逗號+3個數(shù)字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
          24. 備注:這就是最終結(jié)果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數(shù)時去掉去掉那個反斜杠,一般的錯誤都在這里
          25. xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
          26. 中文字符的正則表達式:[\u4e00-\u9fa5]
          27. 雙字節(jié)字符:[^\x00-\xff] (包括漢字在內(nèi),可以用來計算字符串的長度(一個雙字節(jié)字符長度計2,ASCII字符計1))
          28. 空白行的正則表達式:\n\s*\r (可以用來刪除空白行)
          29. HTML標記的正則表達式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (網(wǎng)上流傳的版本太糟糕,上面這個也僅僅能部分,對于復(fù)雜的嵌套標記依舊無能為力)
          30. 首尾空白字符的正則表達式:^\s*|\s*$或(^\s*)|(\s*$) (可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式)
          31. 騰訊QQ號:[1-9][0-9]{4,} (騰訊QQ號從10000開始)
          32. 中國郵政編碼:[1-9]\d{5}(?!\d) (中國郵政編碼為6位數(shù)字)
          33. IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址時有用)
          34. IP地址:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
          35. IP-v4地址:\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b (提取IP地址時有用)
          36. 校驗IP-v6地址:(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
          37. 子網(wǎng)掩碼:((?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d))
          38. 校驗日期:^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$(“yyyy-mm-dd“ 格式的日期校驗,已考慮平閏年。)
          39. 抽取注釋:<!--(.*?)-->
          40. 查找CSS屬性:^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}
          41. 提取頁面超鏈接:(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^" rel="external nofollow" ]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>
          42. 提取網(wǎng)頁圖片:\\< *[img][^\\\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)
          43. 提取網(wǎng)頁顏色代碼:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
          44. 文件擴展名效驗:^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$
          45. 判斷IE版本:^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$
           
          元字符
          描述
          \
          將下一個字符標記符、或一個向后引用、或一個八進制轉(zhuǎn)義符。例如,“\\n”匹配\n。“\n”匹配換行符。序列“\\”匹配“\”而“\(”則匹配“(”。即相當于多種編程語言中都有的“轉(zhuǎn)義字符”的概念。
          ^
          匹配輸入字行首。如果設(shè)置了RegExp對象的Multiline屬性,^也匹配“\n”或“\r”之后的位置。
          $
          匹配輸入行尾。如果設(shè)置了RegExp對象的Multiline屬性,$也匹配“\n”或“\r”之前的位置。
          *
          匹配前面的子表達式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等價于{0,}。
          +
          匹配前面的子表達式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等價于{1,}。
          ?
          匹配前面的子表達式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等價于{0,1}。
          {n}
          n是一個非負整數(shù)。匹配確定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的兩個o。
          {n,}
          n是一個非負整數(shù)。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等價于“o+”。“o{0,}”則等價于“o*”。
          {n,m}
          m和n均為非負整數(shù),其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”將匹配“fooooood”中的前三個o為一組,后三個o為一組。“o{0,1}”等價于“o?”。請注意在逗號和兩個數(shù)之間不能有空格。
          ?
          當該字符緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})后面時,匹配模式是非貪婪的。非貪婪模式盡可能少地匹配所搜索的字符串,而默認的貪婪模式則盡可能多地匹配所搜索的字符串。例如,對于字符串“oooo”,“o+”將盡可能多地匹配“o”,得到結(jié)果[“oooo”],而“o+?”將盡可能少地匹配“o”,得到結(jié)果 ['o', 'o', 'o', 'o']
          .點
          匹配除“\n”和"\r"之外的任何單個字符。要匹配包括“\n”和"\r"在內(nèi)的任何字符,請使用像“[\s\S]”的模式。
          (pattern)
          匹配pattern并獲取這一匹配。所獲取的匹配可以從產(chǎn)生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中則使用$0…$9屬性。要匹配圓括號字符,請使用“”或“”。
          (?:pattern)
          非獲取匹配,匹配pattern但不獲取匹配結(jié)果,不進行存儲供以后使用。這在使用或字符“(|)”來組合一個模式的各個部分時很有用。例如“industr(?:y|ies)”就是一個比“industry|industries”更簡略的表達式。
          (?=pattern)
          非獲取匹配,正向肯定預(yù)查,在任何匹配pattern的字符串開始處匹配查找字符串,該匹配不需要獲取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。預(yù)查不消耗字符,也就是說,在一個匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開始。
          (?!pattern)
          非獲取匹配,正向否定預(yù)查,在任何不匹配pattern的字符串開始處匹配查找字符串,該匹配不需要獲取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。
          (?<=pattern)
          非獲取匹配,反向肯定預(yù)查,與正向肯定預(yù)查類似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
          *python的正則表達式?jīng)]有完全按照正則表達式規(guī)范實現(xiàn),所以一些高級特性建議使用其他語言如java、scala等
          (?<!patte_n)
          非獲取匹配,反向否定預(yù)查,與正向否定預(yù)查類似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。
          *python的正則表達式?jīng)]有完全按照正則表達式規(guī)范實現(xiàn),所以一些高級特性建議使用其他語言如java、scala等
          x|y
          匹配x或y。例如,“z|food”能匹配“z”或“food”(此處請謹慎)。“[z|f]ood”則匹配“zood”或“food”。
          [xyz]
          字符集合。匹配所包含的任意一個字符。例如,“[abc]”可以匹配“plain”中的“a”。
          [^xyz]
          負值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”任一字符。
          [a-z]
          字符范圍。匹配指定范圍內(nèi)的任意字符。例如,“[a-z]”可以匹配“a”到“z”范圍內(nèi)的任意小寫字母字符。
          注意:只有連字符在字符組內(nèi)部時,并且出現(xiàn)在兩個字符之間時,才能表示字符的范圍; 如果出字符組的開頭,則只能表示連字符本身.
          [^a-z]
          負值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范圍內(nèi)的任意字符。
          \b
          匹配一個單詞的邊界,也就是指單詞和空格間的位置(即正則表達式的“匹配”有兩種概念,一種是匹配字符,一種是匹配位置,這里的\b就是匹配位置的)。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”;“\b1_”可以匹配“1_23”中的“1_”,但不能匹配“21_3”中的“1_”。
          \B
          匹配非單詞邊界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
          \cx
          匹配由x指明的控制字符。例如,\cM匹配一個Control-M或回車符。x的值必須為A-Z或a-z之一。否則,將c視為一個原義的“c”字符。
          \d
          匹配一個數(shù)字字符。等價于[0-9]。grep 要加上-P,perl正則支持
          \D
          匹配一個非數(shù)字字符。等價于[^0-9]。grep要加上-P,perl正則支持
          \f
          匹配一個換頁符。等價于\x0c和\cL。
          \n
          匹配一個換行符。等價于\x0a和\cJ。
          \r
          匹配一個回車符。等價于\x0d和\cM。
          \s
          匹配任何不可見字符,包括空格、制表符、換頁符等等。等價于[ \f\n\r\t\v]。
          \S
          匹配任何可見字符。等價于[^ \f\n\r\t\v]。
          \t
          匹配一個制表符。等價于\x09和\cI。
          \v
          匹配一個垂直制表符。等價于\x0b和\cK。
          \w
          匹配包括下劃線的任何單詞字符。類似但不等價于“[A-Za-z0-9_]”,這里的"單詞"字符使用Unicode字符集。
          \W
          匹配任何非單詞字符。等價于“[^A-Za-z0-9_]”。
          \xn
          匹配n,其中n為十六進制轉(zhuǎn)義值。十六進制轉(zhuǎn)義值必須為確定的兩個數(shù)字長。例如,“\x41”匹配“A”。“\x041”則等價于“\x04&1”。正則表達式中可以使用ASCII編碼。
          \num
          匹配num,其中num是一個正整數(shù)。對所獲取的匹配的引用。例如,“(.)\1”匹配兩個連續(xù)的相同字符。
          \n
          標識一個八進制轉(zhuǎn)義值或一個向后引用。如果\n之前至少n個獲取的子表達式,則n為向后引用。否則,如果n為八進制數(shù)字(0-7),則n為一個八進制轉(zhuǎn)義值。
          \nm
          標識一個八進制轉(zhuǎn)義值或一個向后引用。如果\nm之前至少有nm個獲得子表達式,則nm為向后引用。如果\nm之前至少有n個獲取,則n為一個后跟文字m的向后引用。如果前面的條件都不滿足,若n和m均為八進制數(shù)字(0-7),則\nm將匹配八進制轉(zhuǎn)義值nm。
          \nml
          如果n為八進制數(shù)字(0-7),且m和l均為八進制數(shù)字(0-7),則匹配八進制轉(zhuǎn)義值nml。
          \un
          匹配n,其中n是一個用四個十六進制數(shù)字表示的Unicode字符。例如,\u00A9匹配版權(quán)符號(&copy;)。
          \p{P}
          小寫 p 是 property 的意思,表示 Unicode 屬性,用于 Unicode 正表達式的前綴。中括號內(nèi)的“P”表示Unicode 字符集七個字符屬性之一:標點字符。
          其他六個屬性:
          L:字母;
          M:標記符號(一般不會單獨出現(xiàn));
          Z:分隔符(比如空格、換行等);
          S:符號(比如數(shù)學符號、貨幣符號等);
          N:數(shù)字(比如阿拉伯數(shù)字、羅馬數(shù)字等);
          C:其他字符。
          *注:此語法部分語言不支持,例:javascript。
          \<
          \>
          匹配詞(word)的開始(\<)和結(jié)束(\>)。例如正則表達式\<the\>能夠匹配字符串"for the wise"中的"the",但是不能匹配字符串"otherwise"中的"the"。注意:這個元字符不是所有的軟件都支持的。
          ( )
          將( 和 ) 之間的表達式定義為“組”(group),并且將匹配這個表達式的字符保存到一個臨時區(qū)域(一個正則表達式中最多可以保存9個),它們可以用 \1 到\9 的符號來引用。
          |
          將兩個匹配條件進行邏輯“或”(or)運算。例如正則表達式(him|her) 匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:這個元字符不是所有的軟件都支持的。
           

            作者 |  ZhaoYingChao88

          來源 |  runoob.com/regexp/regexp-tutorial.html



          瀏覽 154
          點贊
          評論
          1收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          1收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操屄在线观看 | www.色.com | 国产乱伦自拍视频 | 中文字幕色色 | 99久久99久久精品免费看蜜桃 |