精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文破解正則密碼

開發 前端
本文目標,帶你走進正則世界,作為一篇認真負責的科普文,一定要做到讓你們一遍學懂卻不會,于是反復來查看。

前言

正則,熟悉的陌生人,我們在表單校驗中見到它,也在框架源碼 html 轉 ast 樹的 parser 原理中見到它;常常見到,需要時百度一搜,確實能用,卻又一碰到就發憷,原因很簡單,這火星文,誰看得懂呀!

本文目標,帶你走進正則世界,作為一篇認真負責的科普文,一定要做到讓你們一遍學懂卻不會,于是反復來查看。

正則歷史

正則其實就是規則的設定,用于驗證或者獲取信息。

真正起源于神經網絡

20 世紀 40 年代,兩位神經生理學家研究出了一種用數學方式描述神經網絡的方法,并以此在 1956 年發表了一篇論文《正則表達式搜索算法》,主要描述了一種叫做正則集合(Regular Sets)的符合。

在計算機世界大放異彩

UNIX 之父在十年后的 1968 年,發表文章《正則表達式搜索算法》,并將正則移植到了大名鼎鼎的文本搜索工具grep中。

正則為什么存在

理解一個東西,不要一上來就背應用層的 API,要去理解,人的大腦本來就是被設計成對理解的東西很容易記憶,不要浪費自己的天賦。

我們說過,正則其實就是規則的設定,用于驗證或者獲取信息。匹配動作最粗暴的無疑是一一對應,a 對 a,b 對 b,這個規則就是完全一樣才匹配,但這無疑太低效;一個事物很容易有共性,共性構成集合,比如手機號 13 位,郵箱帶@等等,正則就是讓我們更高效的匹配或獲取這些特定規則集合的存在。

正則如何做到

正則中的處理方式就是設定子規則,讓某些符號不再代表本身,而是代表一些子規則,就像搭建大樓,我們希望找到自己想要的規則,就得用合適的最小磚塊,再設定使用量,就搭建完成了。

這個子規則,就是元字符,如我們常見的\d,代表單個 0-1 數字,\s就是換行指標等空白字符;需要注意的是,我們剛剛一直在強調單個,這其實也很好理解,對于文本而言,最小單元自然是單個字符,有了最小單元,我們再加上重復規模,就可以搭建我們自己的大樓了。

至此,我們對正則世界基本的了解算是到位了,開始更接地氣的分享叭!

磚塊:元字符

那我們先來了解元字符,有四個維度,分別是【字符組】、【取反字符組】、【常用字符組】、【空白字符】,可以記憶為 【3 + 1】,依次理解。

字符組

基礎使用

對于單字符選擇而言,在正則中的術語被稱為字符組,接下來我們都會用這個術語,但不要被迷惑,它并不是匹配一組數據,而只是匹配一組數據中的一個字符,這點很關鍵。

語法: [xxx]。

匹配規則: 目標文本需包含【任意一個包含在括號中的元素】。

獲取信息規則:將獲取第一個【任意一個包含在括號中的元素】。

舉例: /[abc]/這個正則將匹配 a、b、c 中的任何一位且只有一位,默認匹配第一位,使用測試平臺會得到如下結果。

取反字符組

取反邏輯

正常使用是范圍內選取,不過也會出現【除了這些之外】的范圍選取,這時就需要用到取反了。

語法: [^xxx]。

匹配規則: 目標文本需包含【任意一個不包含在括號中的元素】。

獲取信息規則:將獲取第一個【任意一個不包含在括號中的元素】。

舉例: /[^abc]/這個正則將匹配非 a、b、c 中的任何一位且只有一位,默認匹配第一位,使用測試平臺會得到如下結果。

常用字符組

八二原則同樣適用在字符組中,有很多常見的匹配規則,沒必要重復寫,于是正則就把這些特殊字符組分別取了個別名。

主要分為如下【3+1】概念,三對+一個。

其他常用字符組。

空白字符這類字符比較特殊,單獨拎出來,方便后期直接使用。

到此,我們也就知道了如何去匹配單個字符,這就是我們的“最小規?!?,但一個個匹配肯定是不行,那正則將冗長到難以忍受,所以我們還需要重復,這就是量詞的作用。

要多少塊磚:量詞

理解了字符組,我們就要了解規模了,這在正則中有個術語 --- 量詞,還是【3+1】,依次理解。

這個沒有很復雜的東西,唯一要注意的是,正則默認是只匹配一次的,即一次匹配完后就算后文還有符合的內容也不再獲取,這涉及到修飾符g,后面再補充。

看案例就行,我們還是以[abc]作為字符組最小單元來演示。

*號:0-n 次

正則: /[abc]*/。

匹配規則: 目標文本無需包含【任意一個包含在括號中的元素】,此匹配規則一定成立。

獲取信息規則:將獲取第一段【包含在括號中且連續的元素組】。

+號:1+n 次

正則: /[abc]+/。

獲取信息規則:將獲取第一段【包含在括號中且連續的元素組】。

匹配規則: 目標文本需包含【至少一個包含在括號中的元素】。

?號:0 次或 1 次

正則: /[abc]?/。

匹配規則:此匹配規則一定成立。

獲取信息規則:將獲取第一個【任意一個包含在括號中的元素】。

{}符號:精確控制次數

上面其實都屬于特殊案例,我們可以通過{}精確控制匹配次數,主要有三個用法:

  • {m}:必須出現 m 次。
  • {m, n}:可以出現 m-n 次。
  • {m,}:至少出現 m 次。

量詞模式

量詞還涉及到模式問題,因為量詞有范圍,這就意味著可取多可取少,但計算機是不允許有歧義的,所以量詞存在三種模式:

  • 貪婪模式:默認,會盡可能匹配多的內容。
  • 懶惰模式:量詞后面加個?,會盡可能少匹配內容。
  • 獨占模式:量詞后面加個+,不觸發回溯動作。

舉例見模式區別

測試用例: aaabb。

測試正則:

  • 貪婪模式:/a*/。
  • 懶惰模式:/a*?/。

貪婪模式:/a*/。

匹配過程:

匹配結果:

對應輸出結果: ['aaa','','','']。

懶惰模式:/a*?/。

匹配過程:

匹配結果:

對應輸出結果: ['','a','','a','','a','','','']。

補充案例:

至此,我們就完成了對量詞規則的學習。

正則模式

既然量詞有模式,正則本身自然也有模式,針對【大小寫、多行、點通配、備注】情況,存在【3+1】種模式。

  • 不區分大小寫模式。
  • 點通配模式。
  • 多行匹配模式。
  • 注釋模式。

我們來逐一了解:

不區分大小寫模式(Case-Insensitive)

語法: /(?i)reg/ 對應 js 為 /reg/i。

注意點:

  1. 不區分大小寫模式的指定方式,使用模式修飾符 (?i)。
  2. 修飾符如果在括號內,作用范圍是這個括號內的正則,而不是整個正則。

作用: 忽略大小寫進行匹配。

正則: /(?i)(cat) \1/ 對應 js 為 /(cat) \1/i。

如果這時候我們希望重復單詞間保持大小寫完全一致,可以使用如下正則。

正則: /((?i)cat) \1/ 對應 js 為 暫無。

點通配模式(單行匹配模式 -- Single Line)

語法: /(?s)reg/ 對應 js 為暫無。

注意點:

作用: 使得.元字符可以匹配包括換行在內的所有字符。

多行匹配模式

語法: /(?m)reg/ 對應 js 為/reg/m。

注意點:

作用: 使得^和$可以匹配上每行的開頭或結尾。

使用前正則: /^the|cat$/。

使用后正則: /(?m)^the|cat$/ 對應 js 為/^the|cat$/m。

注釋模式

語法: /(?#)reg/ 對應 js 為 暫無。

注意點:

作用: 使得正則支持添加備注信息。

使用正則案例: /(\w+)(?#word) \1(?#word repeat again)/。

正則位置信息

對于匹配而言,就像我們看一個人是不是自己要找的人,不只有對著畫像、照片一直看這一個方法,也可以描述 TA 在什么東西的旁邊、TA 面前是什么、背后是什么等等,這些位置信息在正則中同樣有需求,并且有個專門的術語 -- 斷言。

斷言,即斷定匹配文本的位置關系;前后的內容是什么、中止的位置在哪之類,落實下來分為三類:單詞邊界、行的開始/結束、環視。

行的開始/結束

這個我們或多或少都接觸過,如果我們要求匹配的內容出現在一行文本的開頭或結尾,就可以使用^和$進行位置界定。

結合之前說的【模式】中多行模式的概念,默認處理文本會被正則當成一行進行處理,無論其是否換行,這是的開始結束就等同于文首和文末;而如果想處理多行情況,只需要改變模式為多行匹配即可,js 中語法為/reg/m。

單詞邊界(Word Boundary)

多行模式+^$可以在行的維度處理邊界問題,但如果是單詞,就無能為力了,如我們希望在下面文本中替換tom這個人名為jerry。

tom asked me if I would go fishing with him tomorrow.

這時如果替換的正則是/tom/ ,就會出現這種錯誤的替換現象。

很明顯,我們要的就是tom,而并不是只要包含 tom 就可以的部分,這時我們就可以使用到單詞邊界的概念,設定開始截止,避免出現匹配歧義。

基礎概念

語法: \b。

作用: 匹配到\w即【[A-Za-z0-9_]】表示范圍之外的字符就中止匹配,可以理解為邊界(Boundary)。

實例

環視

我們剛剛說了邊界,包括單詞和行的邊界,其實邊界也就是要求匹配文本的前后一定是特定的內容,只是這個特定內容對行來說是^$,對單詞邊界來說是$。

那我們把這個特定范圍再靈活點,對于一段內容而言,有前后兩個方向、滿足或者不滿足兩個情況,意味著有四種情況,如下表。

總結下來其實就是:有尖括號則為左,等號肯定感嘆否。

正則邏輯信息

根據前文,我們已經學習了【字符組】和【量詞】的概念,就像一門編程語言,有組成物料還不夠,自然還需要一些邏輯判斷,在正則中也存在【邏輯元字符】這一概念。

邏輯元字符

|號:或邏輯

某個資源可能以 http:// 開頭,或者 https:// 開頭,也可能以 ftp:// 開頭,那么資源的 協議部分,我們可以使用 (https?|ftp):// 來表示。

正則優先級提升之分組

在正則中存在分組的概念,主要有兩點作用:整體和復用。

整體

代表避免語義分析有歧義,如【匹配 15 位數字或 18 位數字】,這時如果寫出這樣的正則/\d{15}\d{3}?/;后面的\d{3}?將代表懶惰模式匹配,這個正則會只匹配 18 位數字而非 15 位。

測試正則: /\d{15}\d{3}?/。

這里就存在確定\d{3}是一個整體的需求,這可以使用分組實現。

測試正則: /\d{15}(\d{3})?/。

復用有些時候,我們也會需要用到之前匹配到的結果,如【查看文本中的連續重復單詞】,解決思路就變成了。

  1. 寫出匹配單個單詞的正則。
  2. 使用之前的結果進行再次匹配。

第二點,就是通過分組實現的;先了解下基礎概念。

基礎概念

語法: 定義使用() ,正則中訪問使用\編號,方法中訪問使用$編號。

作用: 用于分組,被括號括起來的部分默認將被保存為子組,正則中可以通過子組編號訪問,子組編號從一遞增,也可以用語法(?:)從而不保存子組,避免占用編號。

分組引用語法詳解

分組引用

假定分組編號為number,則可以使用\number進行引用。

多編號情況

左括號是第幾個,那就是第幾個分組。

不保存子組

使用此語法后不會為這個子組分配編號。

替換功能

命名分組

V8 目前已經完全實現了命名捕獲分組的提案 https://tc39.github.io/proposal-regexp-named-groups/,一起來了解下吧!

基礎概念

語法: 定義使用(?) ,正則中訪問使用\k,方法中訪問使用$。

作用: 用于命名分組,不再使用編號訪問而是直接通過分組變量名訪問,更加準確。

API 結合解構賦值

在 js 關于正則的方法中,如果存在命名分組,會存在groups屬性,里面存放著每個命名分組的名稱以及它們匹配到的值;結合解構賦值,會有很神奇的功效。

在 exec() 和 match() 中的使用:

exec() 和 match() 方法返回的匹配結果數組上多了一個 groups 屬性,里面存放著每個命名分組的名稱以及它們匹配到的值。

const {day, month, year} = "04-25-2017".match(/(?<month>\d{2})-(?<day>\d{2})-(?<year>\d{4})/).groups

在 replace(/.../, replacement) 中的使用:

當replacement為函數時,在實參列表的最末尾,多傳了一個 groups 對象。

"04-25-2017".replace(/(?<month>\d{2})-(?<day>\d{2})-(?<year>\d{4})/, (...args) => {
const groups = args.slice(-1)[0]
const {day, month, year} = groups
return `${day}-${month}-${year}`
})

正則編程

這是最最關鍵的部分,學來就得用上呀,我們來分享在正則在前端編程中的應用。

正則最終還是要落實到編程語言中來,讓我們來看下正則編程吧!

正則的處理可以區分為如下四類:

  • 校驗文本內容。
  • 提取文本內容。
  • 替換文本內容。
  • 切割文本內容。

讓我們逐一了解。

校驗文本內容

需注意:關于 lastIndex,即正則會將下一次匹配開始的位置 ;字符串的四個方法,每次匹配都是從 0 開始的,即 lastIndex 不變;而正則的兩個方法 exec 和 test ,如果是全局匹配,則每次匹配完都會改變 lastIndex 的值,這就會導致可能出現【處理兩次,第一次成功,第二次失敗】的情況。

var regex = new RegExp(/^\d{4}-\d{2}-\d{2}/, 'g')
regex.test('2021-12-21') // true
console.log(regex.lastIndex ) // 10
regex.test('2021-12-21') // false
console.log(regex.lastIndex ) // 0

由于我們這里是文本校驗,并不需要找出所有的。所以建議 JavaScript 中文本校驗在使用 RegExp 時不要設置 g 模式。

字符串方法:search

search 會將字符串轉為正則。

正則方法:test

提取文本內容

字符串方法:match

match 會將字符串轉為正則。

注意:match 方法的返回值與修飾符 g 有關(沒有匹配上時返回 null)。

  • 沒有 g :返回標準匹配格式,即:數組的第一個元素是整體匹配的內容,接下來是分組捕獲的內容,然后是整體匹配的第一個下標,最后是目標字符串。
  • 有 g :返回的是一個包含所有匹配內容的數組。

正則方法:exec

exec 比 match 更強大,可以解決 有修飾符 g 時 match 沒有索引信息的問題,在使用 exec 時,正則會將下一次匹配開始的位置存放在正則的屬性 lastIndex 上。

替換文本內容

字符串方法:replace

切割文本內容

字符串方法:split

  • 可以有第二個參數,表示結果數組的最大長度。
  • 如果正則使用分組時,結果數組中是包含分隔符的。

前端相關 API 總結

string

  • match。
  • split。
  • search。
  • replace。

RegExp

  • test。
  • exec。

總結

做下總結吧,繪制知識圖譜,方便自己記憶,也方便和人分享。

3 + 1 元字符;3 + 1 常用元字符;3 + 1  正則量詞;3         量詞匹配模式;3 + 1  正則匹配模式;3 + 1 正則邏輯

首先物料元字符,有四個維度,分別是【字符組】、【取反字符組】、【常用字符組】、【空白字符】,可以記憶為 【3 + 1】。

理解了字符組,我們就要了解規模了,這在正則中有個術語 --- 量詞還是【3+1】。

量詞還涉及到模式問題,因為量詞有范圍,這就意味著可取多可取少,但計算機是不允許有歧義的,所以量詞存在三種模式。

既然量詞有模式,正則本身自然也有模式,針對【大小寫、多行、點通配、備注】情況,存在【3+1】種模式。

就像定位,不止需要本身的絕對信息,還需要看他的相對位置信息,這個信息在正則中叫斷言,存在三種情況,【行首尾、單詞邊界和環視】,其中環視又存在前后是不是四種情況。

就像編程語言,我們有了零碎的物料是不夠的,還需要邏輯,在正則中存在分支語句|和優先級分組,分組又有三類,默認分組、非捕獲分組和命名分組。

至此,我們也就用非常精煉的總結性語句概括了正則的整體脈絡啦!

尾聲少年們,心法已定,拿走不謝,希望我能做到讓你們一遍看懂而記不住,要首尾呼應,嘗試動手自己實現下吧,有些需求會發現如果用正則的角度,會有很多很神奇的實現方式呀,而且如果能幫助到別人,也超有成就感的。

責任編輯:姜華 來源: 微醫大前端技術
相關推薦

2023-06-01 12:48:52

Java正則表達式

2020-09-18 06:42:14

正則表達式程序

2023-02-14 08:18:43

2019-11-13 09:27:55

Web密碼學數據

2020-03-31 14:40:24

HashMap源碼Java

2024-04-12 12:19:08

語言模型AI

2020-08-27 07:34:50

Zookeeper數據結構

2025-10-27 05:00:00

2024-08-07 10:54:59

正則表達式Java RegexJava

2021-08-04 16:06:45

DataOps智領云

2020-10-26 09:18:50

RedisCluste

2022-03-24 08:51:48

Redis互聯網NoSQL

2023-12-22 19:59:15

2018-07-03 09:12:23

深度學習正則化Python

2023-11-20 08:18:49

Netty服務器

2022-09-22 09:00:46

CSS單位

2021-03-22 10:05:59

netstat命令Linux

2022-12-20 07:39:46

2018-09-28 14:06:25

前端緩存后端

2023-12-21 17:11:21

Containerd管理工具命令行
點贊
收藏

51CTO技術棧公眾號

六九午夜精品视频| 91网在线播放| 性欧美videos另类喷潮| 中文欧美日本在线资源| 男人午夜视频在线观看| 1区2区3区在线| 欧美激情一区不卡| 国产精品免费视频一区二区| 日韩欧美国产另类| 黄色日韩在线| 中文字幕亚洲无线码a| www.黄色网| 国产极品一区| 欧美日韩午夜剧场| 路边理发店露脸熟妇泻火| 天堂在线观看免费视频| 久久99精品久久久久| 97在线免费观看| 国产少妇在线观看| 综合综合综合综合综合网| 欧美电影免费观看完整版| 噼里啪啦国语在线观看免费版高清版| 黄网在线免费看| 国产精品久久久久久久久久久免费看| 精品欧美国产| 性中国xxx极品hd| 麻豆精品一区二区综合av| 青青在线视频一区二区三区 | 久久久99精品久久| 99国精产品一二二线| 中文字幕观看在线| 久久一二三四| 欧美与黑人午夜性猛交久久久| 草视频在线观看| 93在线视频精品免费观看| 亚洲视频在线免费看| 在线观看国产三级| 日韩高清二区| 日韩亚洲欧美中文三级| 欧美特级aaa| 日日夜夜天天综合| 欧美性猛交xxxx免费看漫画| 人妻av中文系列| av伦理在线| 亚洲国产日日夜夜| 国产美女永久无遮挡| 羞羞网站在线看| 亚洲欧美激情一区二区| www亚洲国产| 久久日韩视频| 亚洲猫色日本管| 四虎影院一区二区| www在线观看播放免费视频日本| 国产精品久久二区二区| 亚洲一区二区精品在线| 日韩免费啪啪| 成人欧美一区二区三区视频网页| 一区二区不卡在线视频 午夜欧美不卡'| 精品美女视频在线观看免费软件| 久久久综合激的五月天| 日本视频一区二区在线观看| 经典三级在线| 国产精品第四页| 日本女人高潮视频| 黄色羞羞视频在线观看| 天天综合日日夜夜精品| 国产美女三级视频| 本网站久久精品| 91精品欧美久久久久久动漫 | 免费一级a毛片| 日韩av电影免费观看高清完整版| 国产精品一区二区久久久久| 国产精品-色哟哟| 大桥未久av一区二区三区中文| 国产精选在线观看91| 污污视频在线免费看| 久久先锋影音av鲁色资源| 色涩成人影视在线播放| 国产在线观看免费麻豆| 亚洲国产日韩综合久久精品| 日本三级免费网站| 久久久久久久性潮| 欧美xxx久久| 在线观看福利片| 97精品国产| 久久久亚洲成人| 精品黑人一区二区三区| 国产一区二区精品久久99| 国产一区福利视频| a√资源在线| 一区av在线播放| 国产精品宾馆在线精品酒店| 亚洲精品aa| 精品国产电影一区二区| 妖精视频在线观看免费| 红桃视频国产一区| 国产精品欧美日韩久久| 亚洲精品一级片| 欧美韩国一区二区| 欧美日韩福利在线| 日韩第二十一页| 日韩电视剧免费观看网站| 国产又粗又猛又爽又黄的视频小说| 欧美午夜在线视频| 国产成人精品优优av| 午夜精品一二三区| 国产精品乱码一区二三区小蝌蚪| www.av中文字幕| 国产精品色婷婷在线观看| 亚洲美女激情视频| 国产一级在线观看视频| 麻豆国产精品一区二区三区 | 久久国产综合| 韩国精品美女www爽爽爽视频| av首页在线观看| 波多野结衣精品在线| 一本二本三本亚洲码| 97久久香蕉国产线看观看| 亚洲国产精品字幕| 久草免费在线观看视频| 麻豆精品一二三| 日本午夜精品一区二区| 国产高清视频色在线www| 欧美一级欧美一级在线播放| www成人啪啪18软件| 亚洲在线成人| 国产伦精品一区二区三| 在线黄色网页| 91精品欧美综合在线观看最新| av电影在线不卡| 午夜在线a亚洲v天堂网2018| 国产91视觉| 牛牛精品在线视频| 日韩一卡二卡三卡国产欧美| 三上悠亚作品在线观看| 蜜乳av一区二区| 日韩欧美在线一区二区| 日本免费一区二区三区四区| 日韩大片免费观看视频播放| 精品美女久久久久| 成人黄色a**站在线观看| 91视频 - 88av| 91嫩草精品| 欧美人在线视频| av天堂一区二区三区| 18涩涩午夜精品.www| 奇米影视四色在线| 91亚洲国产成人久久精品| 国产日韩欧美中文在线播放| 日韩大片在线永久免费观看网站| 欧美日韩精品免费| 日韩欧美在线视频播放| 久久99精品久久久久久久久久久久| 亚洲一区二区高清视频| 粉嫩一区二区三区在线观看| 另类图片亚洲另类| 亚洲国产日韩在线观看| 亚洲国产欧美一区二区三区丁香婷 | 欧美日韩经典丝袜| 精品少妇一区二区三区视频免付费 | 外国精品视频在线观看| 五月天国产精品| 日韩人妻无码一区二区三区| 三级久久三级久久| 亚洲精品一卡二卡三卡四卡| 中文幕av一区二区三区佐山爱| 欧美成人免费小视频| 人妻少妇一区二区三区| 色婷婷综合久久| 日韩黄色中文字幕| 国产精品一区2区| 777av视频| 精品福利久久久| 91大片在线观看| 91九色porn在线资源| 亚洲视频国产视频| 国产精品乱码久久久| 亚洲成人资源网| 国产综合精品在线| 国产乱一区二区| 亚洲自偷自拍熟女另类| 国产精品国产一区| 国产一区免费观看| 国产成人亚洲一区二区三区| 欧美黑人性猛交| 黄色电影免费在线看| 555www色欧美视频| 少妇一级淫片免费放中国| 国产精品国模大尺度视频| 国产在线观看免费播放| 丝袜美腿高跟呻吟高潮一区| 9l视频自拍9l视频自拍| 啪啪激情综合网| 成人性生交xxxxx网站| 国产夫妻在线| 久久视频免费观看| 免费在线超碰| 欧美videos中文字幕| 波多野结衣激情视频| 一级女性全黄久久生活片免费| 精品夜夜澡人妻无码av | 色综合久久中文综合久久97| 日韩av手机在线免费观看| 99精品视频在线免费观看| www.色就是色.com| 久久久蜜桃一区二区人| 成人在线免费观看视频网站| 成人午夜av| 美国av一区二区三区| 久久精品免视看国产成人| 国产精品高潮粉嫩av| 国模精品视频| 九九热这里只有精品6| 都市激情在线视频| 亚洲国产精品va在线| 国产99久一区二区三区a片| 在线精品视频一区二区| 你懂的国产视频| 樱花影视一区二区| 五月婷婷综合激情网| 国产人伦精品一区二区| 网站免费在线观看| 成人午夜伦理影院| 制服.丝袜.亚洲.中文.综合懂| 乱一区二区av| 免费看污污网站| 丝袜美腿亚洲综合| 成人在线看视频| 亚洲精品免费观看| 妺妺窝人体色777777| 欧美日韩四区| 8x8x华人在线| 欧美88av| 日本一二三区视频在线| 91精品蜜臀一区二区三区在线| 亚洲精品一区二| 欧美wwwww| 国产日韩视频在线播放| 亚洲综合婷婷| 欧美 亚洲 视频| 欧美日本不卡| 91动漫在线看| 亚洲国产精品一区| 人妻久久久一区二区三区| 亚洲福利专区| 日韩少妇内射免费播放| 国产精品久久久久9999高清| 国产av麻豆mag剧集| 久久不射中文字幕| 成人亚洲视频在线观看| 毛片av中文字幕一区二区| 色乱码一区二区三区在线| 另类欧美日韩国产在线| 五月天开心婷婷| 国产伦精品一区二区三区视频青涩 | 亚洲精品中文字幕乱码三区91| 欧美日韩一区二区在线播放| 69成人免费视频| 欧美三级欧美一级| 国产又粗又大又黄| 日韩欧美不卡一区| 特黄视频在线观看| 国产亚洲欧美日韩美女| 在线观看免费网站黄| 久久97精品久久久久久久不卡| av免费不卡| 国产成人免费91av在线| 亚洲aⅴ网站| 国产美女在线精品免费观看| 亚洲理论电影片| 在线观看一区二区三区三州| 亚洲综合五月| 337p粉嫩大胆噜噜噜鲁| 蜜桃视频在线一区| 香蕉视频免费网站| 久久精品免费在线观看| 日本福利片在线观看| 精品久久久久久国产91| 最近日韩免费视频| 日韩美女视频在线| 你懂的免费在线观看视频网站| 中文欧美在线视频| 成人在线高清免费| 国产精品久久久久久久9999| 电影91久久久| 欧美成人一区二区在线| 久久久久国产精品| 亚洲熟妇av日韩熟妇在线| 蜜桃久久久久久| 理论片大全免费理伦片| 国产精品另类一区| 日干夜干天天干| 337p亚洲精品色噜噜狠狠| 天堂中文在线视频| 久热爱精品视频线路一| 亚洲成a人片| 国模一区二区三区私拍视频| 97精品国产福利一区二区三区| 各处沟厕大尺度偷拍女厕嘘嘘| 老司机免费视频一区二区三区| 亚洲图片综合网| 亚洲免费资源在线播放| 亚洲大片免费观看| 欧美精品一区二区三区视频| 一广人看www在线观看免费视频| 97超碰蝌蚪网人人做人人爽| 99视频这里有精品| 神马影院午夜我不卡| 亚洲精选久久| 丰满少妇一区二区三区专区| 国产精品五月天| 亚洲午夜18毛片在线看| 日韩视频在线你懂得| 91欧美在线视频| 国产91在线播放九色快色| 伦理一区二区| 成人短视频在线观看免费| 激情综合五月天| 久久久久久成人网| 色国产精品一区在线观看| 人妻偷人精品一区二区三区| 超碰91人人草人人干| 国产精品高潮久久| 日韩中文字幕一区二区| 毛片一区二区| 日韩一级视频在线观看| 午夜久久久影院| www.超碰在线.com| 久久综合久久88| 国产精品毛片无码| 一道本在线观看视频| 久久99精品久久久久婷婷| 91社区视频在线观看| 91福利在线观看| 可以直接在线观看的av| 欧美最顶级的aⅴ艳星| 亚洲8888| 国产精品动漫网站| 久久久精品中文字幕麻豆发布| 好看的av在线| 亚洲日本中文字幕| 蜜桃视频成人m3u8| 亚洲国产欧美不卡在线观看| 免费视频一区二区| 精品在线观看一区| 欧美精品xxxxbbbb| mm1313亚洲国产精品美女| 亚洲综合中文字幕在线| 欧美成人一品| 日本一区二区在线观看视频| 午夜欧美一区二区三区在线播放| 欧美一级免费片| 欧美重口另类videos人妖| 国产精品美女久久久久久不卡 | 国产精品原创视频| 自拍偷拍一区二区三区| 国产一区 二区 三区一级| 久久亚洲av午夜福利精品一区| 亚洲高清久久久久久| 中文在线免费二区三区| 日韩精品久久久免费观看| 久久av中文字幕片| 欧美成人三级在线观看| 亚洲国产精彩中文乱码av| www.com.cn成人| 亚洲国产精品久久久久婷婷老年 | 99久久国产免费免费| 136国产福利精品导航网址| 亚洲第一成人网站| 欧美精品日韩综合在线| 黄色大片在线| 欧美日韩亚洲免费| 国内精品在线播放| 圆产精品久久久久久久久久久| 中文在线不卡视频| 国产一区二区三区国产精品| 国产免费黄色小视频| 国产欧美日韩精品a在线观看| 国产强伦人妻毛片| 奇米一区二区三区四区久久| 99久久99久久精品国产片桃花 | 老牛影视av一区二区在线观看| www.四虎成人| 亚洲精品午夜久久久| 你懂的免费在线观看视频网站| 91香蕉国产在线观看| 99日韩精品| 糖心vlog免费在线观看| 日韩激情av在线播放| 日韩毛片免费看| 婷婷五月综合缴情在线视频| 欧美高清在线一区二区| 黄色一级a毛片| 国产精品美乳一区二区免费| 国产精品videossex久久发布| 天天躁夜夜躁狠狠是什么心态| 日韩欧美的一区| 国产麻豆一区| 日本一本二本在线观看| 亚洲一区二区三区在线播放|