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

如何優(yōu)化正則表達(dá)式性能?

系統(tǒng) Linux
正則表達(dá)式是計(jì)算機(jī)科學(xué)的一個(gè)概念,很多語言都實(shí)現(xiàn)了它。正則表達(dá)式使用一些特定的元字符來檢索、匹配以及替換符合規(guī)定的字符串。

 

一.背景

正則表達(dá)式是計(jì)算機(jī)科學(xué)的一個(gè)概念,很多語言都實(shí)現(xiàn)了它。正則表達(dá)式使用一些特定的元字符來檢索、匹配以及替換符合規(guī)定的字符串。

構(gòu)造正則表達(dá)式語法的元字符,由普通字符、標(biāo)準(zhǔn)字符、限定字符(量詞)、定位符(邊界字符)組成,詳情如下:

二.正則表達(dá)式引擎

正則表達(dá)式是一個(gè)用正則符號(hào)寫出的公式,程序?qū)@個(gè)公式進(jìn)行語法分析,建立一個(gè)語法分析樹,再根據(jù)這個(gè)分析樹結(jié)合正則表達(dá)式的引擎生成執(zhí)行程序(這個(gè)執(zhí)行程序我們把它稱作狀態(tài)機(jī),也叫狀態(tài)自動(dòng)機(jī)),用于字符匹配。

而這里的正則表達(dá)式引擎就是一套核心算法,用于建立狀態(tài)機(jī)。

目前實(shí)現(xiàn)正則表達(dá)式引擎的方式有兩種:DFA自動(dòng)機(jī)(Deterministic Final Automata 確定有限狀態(tài)自動(dòng)機(jī))和 NFA(Non deterministic Finite Automaton 非確定有限狀態(tài)自動(dòng)機(jī))。

對(duì)比來看,構(gòu)造 DFA 自動(dòng)機(jī)的代價(jià)遠(yuǎn)大于 NFA 自動(dòng)機(jī),但 DFA 自動(dòng)機(jī)的執(zhí)行效率高于 NFA 自動(dòng)機(jī)。

假設(shè)一個(gè)字符串的長度是 n,如果用 DFA 自動(dòng)機(jī)作為正則表達(dá)式引擎,則匹配的時(shí)間復(fù)雜度為 O(n);如果用 NFA 自動(dòng)機(jī)作為正則表達(dá)式引擎,由于 NFA 自動(dòng)機(jī)在匹配過程中存在大量的分支和回溯,假設(shè) NFA 的狀態(tài)數(shù)為 s,則該匹配算法的時(shí)間復(fù)雜度為 O(ns)。

NFA 自動(dòng)機(jī)的優(yōu)勢(shì)是支持更多功能。例如:捕獲 group、環(huán)視、占有優(yōu)先量詞等高級(jí)功能。這些功能都是基于子表達(dá)式獨(dú)立進(jìn)行匹配,因此在編程語言里,使用的正則表達(dá)式庫都是基于 NFA 實(shí)現(xiàn)的。

那么 NFA 自動(dòng)機(jī)到底是怎么進(jìn)行匹配的呢?接下來以下面的例子來進(jìn)行說明: 

  1. text = "aabcab"  
  2. regex = "bc" 

NFA 自動(dòng)機(jī)會(huì)讀取正則表達(dá)式的每一個(gè)字符,拿去和目標(biāo)字符串匹配,匹配成功就換正則表達(dá)式的下一個(gè)字符,反之就繼續(xù)和目標(biāo)字符串的下一個(gè)字符進(jìn)行匹配。

分解一下過程:

1)讀取正則表達(dá)式的第一個(gè)匹配符和字符串的第一個(gè)字符進(jìn)行比較,b 對(duì) a,不匹配;繼續(xù)換字符串的下一個(gè)字符,也就是 a,不匹配;繼續(xù)換下一個(gè),是 b,匹配;

 

2)同理,讀取正則表達(dá)式的第二個(gè)匹配符和字符串的第四個(gè)字符進(jìn)行比較,c 對(duì) c,匹配;繼續(xù)讀取正則表達(dá)式的下一個(gè)字符,然而后面已經(jīng)沒有可匹配的字符了,結(jié)束。

這就是 NFA 自動(dòng)機(jī)的匹配過程,雖然在實(shí)際應(yīng)用中,碰到的正則表達(dá)式都要比這復(fù)雜,但匹配方法是一樣的。

三.NFA自動(dòng)機(jī)的回溯

用 NFA 自動(dòng)機(jī)實(shí)現(xiàn)的比較復(fù)雜的正則表達(dá)式,在匹配過程中經(jīng)常會(huì)引起回溯問題。大量的回溯會(huì)長時(shí)間地占用 CPU,從而帶來系統(tǒng)性能開銷。如下面例子: 

  1. text = "abbc"  
  2. regex = "ab{1,3}c" 

上面例子,匹配目的比較簡單。匹配以 a 開頭,以 c 結(jié)尾,中間有 1-3 個(gè) b 字符的字符串。NFA 自動(dòng)機(jī)對(duì)其解析的過程是這樣的:

1)讀取正則表達(dá)式第一個(gè)匹配符 a 和字符串第一個(gè)字符 a 進(jìn)行比較,a 對(duì) a,匹配;

2)讀取正則表達(dá)式第一個(gè)匹配符 b{1,3} 和字符串的第二個(gè)字符 b 進(jìn)行比較,匹配。但因?yàn)?b{1,3} 表示 1-3 個(gè) b 字符串,NFA 自動(dòng)機(jī)又具有貪婪特性,所以此時(shí)不會(huì)繼續(xù)讀取正則表達(dá)式的下一個(gè)匹配符,而是依舊使用 b{1,3} 和字符串的第三個(gè)字符 b 進(jìn)行比較,結(jié)果還是匹配。

3)繼續(xù)使用 b{1,3} 和字符串的第四個(gè)字符 c 進(jìn)行比較,發(fā)現(xiàn)不匹配了,此時(shí)就會(huì)發(fā)生回溯,已經(jīng)讀取的字符串第四個(gè)字符 c 將被吐出去,指針回到第三個(gè)字符 b 的位置。

4)那么發(fā)生回溯以后,匹配過程怎么繼續(xù)呢?程序會(huì)讀取正則表達(dá)式的下一個(gè)匹配符 c,和字符串中的第四個(gè)字符 c 進(jìn)行比較,結(jié)果匹配,結(jié)束。

四.如何避免回溯問題?

既然回溯會(huì)給系統(tǒng)帶來性能開銷,那我們?nèi)绾螒?yīng)對(duì)呢?如果你有仔細(xì)看上面那個(gè)案例的話,你會(huì)發(fā)現(xiàn) NFA 自動(dòng)機(jī)的貪婪特性就是導(dǎo)火索,這和正則表達(dá)式的匹配模式息息相關(guān)。

1.貪婪模式(Greedy)

顧名思義,就是在數(shù)量匹配中,如果單獨(dú)使用 +、?、*或(min,max)等量詞,正則表達(dá)式會(huì)匹配盡可能多的內(nèi)容。

例如,上面那個(gè)例子: 

  1. text = "abbc"  
  2. regex = "ab{1,3}c" 

就是在貪婪模式下,NFA自動(dòng)機(jī)讀取了最大的匹配范圍,即匹配 3 個(gè) b 字符。匹配發(fā)生了一次失敗,就引起了一次回溯。如果匹配結(jié)果是“abbbc”,就會(huì)匹配成功。 

  1. text = "abbbc"  
  2. regex = "ab{1,3}c" 

2.懶惰模式(Reluctant)

在該模式下,正則表達(dá)式會(huì)盡可能少地重復(fù)匹配字符,如果匹配成功,它會(huì)繼續(xù)匹配剩余的字符串。

例如,上面的例子的字符后面加一個(gè)“?”,就可以開啟懶惰模式。 

  1. text = "abc"  
  2. regex = "ab{1,3}?c" 

匹配結(jié)果是“abc”,該模式下 NFA 自動(dòng)機(jī)首先選擇最小的匹配范圍,即匹配 1 個(gè) b 字符,因此就避免了回溯問題。另外,關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):面試,可以獲取我整理的 Java 系列面試題和答案,非常齊全。

3.獨(dú)占模式(Possessive)

同貪婪模式一樣,獨(dú)占模式一樣會(huì)最大限度地匹配更多內(nèi)容;不同的是,在獨(dú)占模式下,匹配失敗就會(huì)結(jié)束匹配,不會(huì)發(fā)生回溯問題。

還是上面的例子,在字符后面加一個(gè)“+”,就可以開啟獨(dú)占模式。 

  1. text = "abbc"  
  2. regex = "ab{1,3}+c" 

結(jié)果是不匹配,結(jié)束匹配,不會(huì)發(fā)生回溯問題。

所以綜上所述,避免回溯的方法就是:使用懶惰模式或獨(dú)占模式。

前面講述了“Split() 方法使用了正則表達(dá)式實(shí)現(xiàn)了其強(qiáng)大的分割功能,而正則表達(dá)式的性能是非常不穩(wěn)定的,使用不恰當(dāng)會(huì)引起回溯問題。”,比如使用了 split 方法提取域名,并檢查請(qǐng)求參數(shù)是否符合規(guī)定。

split 在匹配分組時(shí)遇到特殊字符產(chǎn)生了大量回溯,解決辦法就是在正則表達(dá)式后加一個(gè)需要匹配的字符和“+”解決了回溯問題:

  1. \\?(([A-Za-z0-9-~_=%]++\\&{0,1})+) 

五.正則表達(dá)式的優(yōu)化

1.少用貪婪模式:多用貪婪模式會(huì)引起回溯問題,可以使用獨(dú)占模式來避免回溯。

2.減少分支選擇:分支選擇類型 “(X|Y|Z)” 的正則表達(dá)式會(huì)降低性能,在開發(fā)的時(shí)候要盡量減少使用。如果一定要用,可以通過以下幾種方式來優(yōu)化:

1)考慮選擇的順序,將比較常用的選擇項(xiàng)放在前面,使他們可以較快地被匹配;

2)可以嘗試提取共用模式,例如,將 “(abcd|abef)” 替換為 “ab(cd|ef)” ,后者匹配速度較快,因?yàn)?NFA 自動(dòng)機(jī)會(huì)嘗試匹配 ab,如果沒有找到,就不會(huì)再嘗試任何選項(xiàng);

3)如果是簡單的分支選擇類型,可以用三次 index 代替 “(X|Y|Z)” ,如果測(cè)試話,你就會(huì)發(fā)現(xiàn)三次 index 的效率要比 “(X|Y|Z)” 高一些。

3.減少捕獲嵌套 :

捕獲組是指把正則表達(dá)式中,子表達(dá)式匹配的內(nèi)容保存到以數(shù)字編號(hào)或顯式命名的數(shù)組中,方便后面引用。一般一個(gè)()就是一個(gè)捕獲組,捕獲組可以進(jìn)行嵌套。

非捕獲組則是指參與匹配卻不進(jìn)行分組編號(hào)的捕獲組,其表達(dá)式一般由(?:exp)組成。

在正則表達(dá)式中,每個(gè)捕獲組都有一個(gè)編號(hào),編號(hào) 0 代表整個(gè)匹配到的內(nèi)容。可以看看下面的例子: 

  1. public static void main(String[] args) {  
  2.         String text = "<input high=\"20\" weight=\"70\">test</input>";  
  3.         String reg = "(<input.*?>)(.*?)(</input>)" 
  4.         Pattern p = Pattern.compile(reg);  
  5.         Matcher m = p.matcher(text);  
  6.         while (m.find()){  
  7.             System.out.println(m.group(0));//整個(gè)匹配到的內(nèi)容  
  8.             System.out.println(m.group(1));//<input.*?>  
  9.             System.out.println(m.group(2));//(.*?)  
  10.             System.out.println(m.group(3));//(</input> 
  11.         }  
  12.     }  
  13. =====運(yùn)行結(jié)果=====  
  14. <input high="20" weight="70">test</input>  
  15. <input high="20" weight="70">  
  16. test  
  17. </input> 

如果你并不需要獲取某一個(gè)分組內(nèi)的文本,那么就使用非捕獲組,例如,使用 “(?:x)” 代替 “(X)” ,例如下面的例子: 

  1. public static void main(String[] args) {  
  2.         String text = "<input high=\"20\" weight=\"70\">test</input>";  
  3.         String reg = "(?:<input.*?>)(.*?)(?:</input>)" 
  4.         Pattern p = Pattern.compile(reg);  
  5.         Matcher m = p.matcher(text);  
  6.         while (m.find()) {  
  7.             System.out.println(m.group(0));//整個(gè)匹配到的內(nèi)容  
  8.             System.out.println(m.group(1));//(.*?)  
  9.         }  
  10.     }  
  11. =====運(yùn)行結(jié)果=====  
  12. <input high="20" weight="70">test</input>  
  13. test  

 

責(zé)任編輯:龐桂玉 來源: Linux公社
相關(guān)推薦

2018-09-27 15:25:08

正則表達(dá)式前端

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2024-09-14 09:18:14

Python正則表達(dá)式

2024-01-04 08:25:03

String表達(dá)式工具

2010-03-25 18:25:36

Python正則表達(dá)式

2011-06-02 12:34:16

正則表達(dá)式

2021-01-27 11:34:19

Python正則表達(dá)式字符串

2022-03-28 06:19:14

正則表達(dá)式開發(fā)

2017-05-12 10:47:45

Linux正則表達(dá)式程序基礎(chǔ)

2019-07-17 15:45:47

正則表達(dá)式字符串前端

2009-02-18 09:48:20

正則表達(dá)式Java教程

2009-09-16 18:19:34

正則表達(dá)式組

2022-01-04 11:35:03

Linux Shel正則表達(dá)式Linux

2016-11-10 16:21:22

Java 正則表達(dá)式

2009-09-16 17:15:57

正則表達(dá)式引擎

2023-09-13 08:12:45

2012-04-28 15:22:46

PHP

2009-08-19 14:48:57

正則表達(dá)式性能

2009-02-17 09:10:01

正則表達(dá)式Java優(yōu)化

2012-05-08 13:29:01

VB
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品一区二区在线播放| 精品国产乱码| 狠狠色狠狠色综合日日小说| 日本在线视频一区| 一级淫片免费看| 亚洲澳门在线| 亚洲国产精品va在线观看黑人| 日本网站免费在线观看| 国产二区视频在线观看| 免费在线观看精品| 亚洲91精品在线| 91动漫免费网站| 精品丝袜久久| 91精品啪在线观看国产60岁| 欧美在线观看成人| 尤物在线网址| 国产精品视频一二三区| 国产精品久久久久久久久久直播 | 色域天天综合网| 97超碰人人爱| yourporn在线观看中文站| 成人三级伦理片| 成人国产精品免费视频| www.欧美色| 亚洲经典自拍| 欧美久久久精品| 免费一级suv好看的国产网站| 国产91精品入| 日韩一区二区三区三四区视频在线观看| 麻豆av免费在线| 成人在线高清免费| 亚洲欧洲综合另类在线| 亚洲国产精品久久久久久女王| 欧美特级特黄aaaaaa在线看| 国精产品一区一区三区mba桃花 | 亚洲一区二区久久久| 国产性生活毛片| 日韩精品一级| 欧美一卡2卡三卡4卡5免费| www.xxx亚洲| 视频在线日韩| 91国模大尺度私拍在线视频| 精品视频免费在线播放| 蜜桃传媒在线观看免费进入| 亚洲欧美成aⅴ人在线观看 | 亚洲激情偷拍| 国内精品视频久久| 久久久久久久久久久网| 亚洲情侣在线| 欧美精品在线看| 老女人性淫交视频| 一区二区三区中文| 免费不卡在线观看av| 免费国产羞羞网站美图| 99久久99久久精品国产片桃花| 中文字幕在线国产精品| 午夜黄色福利视频| 97久久视频| 久热精品视频在线免费观看| 91高清免费看| 伊人久久大香线蕉av超碰演员| 久久久久久久网站| 欧美亚韩一区二区三区| 美女国产一区| 国产日韩欧美日韩大片| 国产又粗又长又大视频| 日韩国产精品91| 国产欧美精品在线播放| 一区二区三区亚洲视频| 国产精品亚洲综合一区在线观看| 99视频免费观看| 人妻精品一区二区三区| 91麻豆蜜桃一区二区三区| 欧美日韩在线精品| av电影在线网| 亚洲精品v日韩精品| 又大又硬又爽免费视频| 亚洲人体影院| 欧美日韩大陆在线| 一个人看的视频www| 精品伊人久久久| 亚洲一级一级97网| 黄色录像一级片| 激情婷婷久久| 国产a∨精品一区二区三区不卡| 欧美日韩 一区二区三区| 久久er99热精品一区二区| 96久久精品| 欧洲亚洲精品视频| 最新国产精品久久精品| 亚洲国产精品无码观看久久| 不卡亚洲精品| 日韩欧美在线影院| 免费看黄色aaaaaa 片| 成人综合久久| 久久九九热免费视频| 日韩精品视频免费播放| 日本三级亚洲精品| 99在线视频播放| 黄色在线网站| 亚洲国产视频在线| 午夜激情福利在线| 亚洲图色一区二区三区| 国产亚洲综合久久| 久草网在线观看| 三级一区在线视频先锋 | 99国产精品欲| 久久蜜桃av一区精品变态类天堂 | 91.com视频| 右手影院亚洲欧美| 你懂的视频一区二区| 国产精品91在线观看| 国产成人三级在线播放| 日本一区二区视频在线观看| 人妻无码久久一区二区三区免费| 日本在线中文字幕一区二区三区| 欧美精品一区二区精品网| fc2ppv在线播放| 日韩电影一区二区三区| 国语精品免费视频| 少女频道在线观看免费播放电视剧 | 日韩欧美一区二区在线观看| brazzers在线观看| 欧美一区二区三区精品| 精品熟妇无码av免费久久| 在线亚洲伦理| 99在线视频播放| 中文字幕在线观看网站| 欧美日韩在线不卡| 91精品人妻一区二区| 激情另类综合| 国产精品久久久久久久小唯西川| 乱人伦中文视频在线| 欧美三区在线观看| 成人国产精品久久久网站| 亚洲区国产区| 国产一区二区自拍| a国产在线视频| 欧美精品一区二区三区在线| 久久久久无码国产精品不卡| 国产一区二区看久久| 在线综合视频网站| 欧美日韩卡一| 久久精品99久久久香蕉| 中文字幕在线观看1| 国产欧美一区二区精品婷婷| 人妻丰满熟妇av无码区app| 日韩精品亚洲aⅴ在线影院| 97精品国产91久久久久久| 人妻一区二区三区四区| 亚洲一二三级电影| 2018国产精品| 亚洲全部视频| 欧美精品成人一区二区在线观看| 一区二区三区短视频| 亚洲欧美一区二区三区情侣bbw| 毛片视频网站在线观看| 久久久久久一级片| 中文字幕在线导航| 久久伦理在线| 97久久精品午夜一区二区| 天堂va在线| 亚洲精品aⅴ中文字幕乱码| 欧美一级特黄视频| 国产婷婷色一区二区三区在线| 一级黄色香蕉视频| 日本不卡高清| 91精品黄色| 麻豆理论在线观看| 亚洲最新中文字幕| 国产又粗又猛又色又| 亚洲精品成人悠悠色影视| 亚洲精品无码久久久久久久| 亚洲天堂久久| 欧美系列一区| 国产精品99久久免费| 欧美日本啪啪无遮挡网站| 天堂网在线资源| 日本韩国精品在线| 中文字幕五月天| av在线播放成人| 国产一级特黄a大片免费| 久久久久久久久国产一区| 国产伦理一区二区三区| 我爱我色成人网| 久久亚洲国产精品成人av秋霞| 亚洲av色香蕉一区二区三区| 欧美性xxxx| 日本aⅴ在线观看| 91原创在线视频| 亚洲xxx在线观看| 黄色成人精品网站| 神马影院午夜我不卡影院| 亚洲啊v在线免费视频| 欧美最猛性xxxxx免费| 黄色在线免费网站| 亚洲欧美日韩直播| 精品国产九九九| 91成人免费电影| 欧美日韩中文视频| 中文字幕在线视频一区| 免费日本黄色网址| 久久狠狠亚洲综合| 久久久久人妻精品一区三寸| 亚洲成人精品| 日韩影视精品| 欧美黄色录像| a级国产乱理论片在线观看99| 日韩在线免费| 欧美自拍视频在线| 青春草免费在线视频| 在线看日韩av| 飘雪影视在线观看免费观看 | 国产在线观看一区| 亚洲视频自拍| 国产精品视频在线观看| 日韩深夜视频| 久久久久久亚洲精品中文字幕| 欧美被日视频| 在线播放国产一区中文字幕剧情欧美 | 国产精品男女视频| 一区二区欧美国产| 亚洲综合视频网站| 国产精品女主播av| 一区二区精品免费| 99精品一区二区三区| 好吊操视频这里只有精品| 精品一区二区三区免费| 天天操天天爱天天爽| 亚洲欧美网站| 久久久久久久久久久99| 精品av久久久久电影| 妞干网这里只有精品| 日韩精品午夜| 亚洲精品一区二区三区av| 最新国产一区| 麻豆亚洲一区| 免费视频亚洲| 欧美下载看逼逼| 亚洲人成伊人成综合图片| 久久99久久99精品蜜柚传媒| 久久97精品| 极品日韩久久| 伊人久久大香线蕉av不卡| 久久精品国产99精品国产亚洲性色| 91成人午夜| 国产精品高清一区二区三区| aaa国产精品视频| 岛国一区二区三区高清视频| 超碰一区二区三区| 国产成人精品福利一区二区三区| 超碰在线亚洲| 蜜桃麻豆91| 欧美精品第一区| 亚洲欧洲国产日韩精品| 婷婷丁香综合| www婷婷av久久久影片| 激情久久一区| 成年人视频在线免费| 日本中文字幕一区| 日本精品一区在线| 国产91精品免费| 日本护士做爰视频| 久久亚区不卡日本| 久久精品三级视频| 亚洲蜜臀av乱码久久精品| 激情四射综合网| 欧美日韩亚洲一区二| 蜜臀尤物一区二区三区直播| 欧美年轻男男videosbes| www夜片内射视频日韩精品成人| 欧美成人一区二区三区片免费 | 国产亚洲一区二区三区四区| 国产破处视频在线观看| 亚洲激情第一区| 天天操天天干视频| 欧美怡红院视频| 国产99视频在线| 亚洲韩国日本中文字幕| av中文字幕在线| 欧美国产视频日韩| 日日夜夜天天综合| 91中文在线观看| 日本妇女一区| 国产精品夜夜夜爽张柏芝| 亚洲国内欧美| 三上悠亚在线一区二区| 成人久久18免费网站麻豆 | 亚洲精品免费一二三区| 中文字幕日韩一级| 欧美疯狂做受xxxx富婆| 天天干天天舔天天射| 日韩中文有码在线视频| a在线视频v视频| 91欧美精品成人综合在线观看| 欧美激情影院| 午夜啪啪免费视频| 亚洲在线电影| 高清中文字幕mv的电影| 国产精品毛片高清在线完整版| 亚洲国产精一区二区三区性色| 在线观看av一区二区| 风流老熟女一区二区三区| 永久免费精品影视网站| 阿v视频在线| 成人在线播放av| 欧美三级三级| 日韩少妇内射免费播放| 国产精品一区二区不卡| 久久久久亚洲av无码a片| 五月综合激情日本mⅴ| 国产免费久久久| 中文字幕日韩欧美| 亚洲妇女成熟| 国产日韩一区二区| 欧美暴力喷水在线| jizz欧美性11| 久久精品视频在线看| 日本在线视频免费观看| 日韩午夜在线观看视频| 天堂а√在线官网| 欧洲亚洲女同hd| 日本欧美三级| 每日在线观看av| 懂色av一区二区三区免费看| 日本高清一二三区| 5月丁香婷婷综合| 中文字幕在线观看日本| 国产精品免费一区| 欧美猛男同性videos| 欧美日韩在线中文| www.av精品| 欧美一二三区视频| 亚洲国产精品小视频| av免费不卡| 国产一区二区三区色淫影院| 亚洲激情社区| 少妇一级淫片免费放播放| 亚洲一二三区不卡| 日韩永久免费视频| 97视频在线观看网址| 国产精品欧美大片| 国产黄色片免费在线观看| 成人精品国产一区二区4080| 国产亚洲精品久久777777| 精品国产一区二区精华| 久久青青色综合| 国产免费一区| 午夜在线精品偷拍| 人人爽人人爽人人片| 欧美日精品一区视频| 午夜伦理在线| 亚洲自拍偷拍第一页| 国产精品hd| 久久精品女同亚洲女同13| 色综合久久久久综合体| 国产高清视频在线| 国产精品视频最多的网站| 国产精品久久久久9999赢消| 一二三av在线| 亚洲国产日韩av| 精品福利视频导航大全| 国产精品久久久久久久久久久新郎 | 日本欧美韩国| 日本一区二区三区四区五区六区| 国产成人免费在线观看不卡| 97免费在线观看视频| 亚洲欧美一区二区三区四区| 日本午夜精品久久久久| 日本a在线天堂| 久久久久青草大香线综合精品| 怡红院男人的天堂| 欧美精品免费播放| 日韩动漫一区| 久久国产精品国产精品| 一区二区三区在线观看国产| 五月婷婷开心中文字幕| 国产精品日日摸夜夜添夜夜av| 亚洲精品在线观看91| 少妇被狂c下部羞羞漫画| 欧美综合视频在线观看| 日本片在线观看| 日韩动漫在线观看| 国产剧情一区二区| 国产毛片aaa| 久久久精品一区二区三区| 另类春色校园亚洲| 中文字幕av专区| 五月天激情小说综合| 日韩伦理在线电影| 精品视频一区二区| 极品少妇xxxx偷拍精品少妇| 色网站在线播放| 久久好看免费视频| 亚洲ab电影| 国产精品久久久久野外| 欧美怡红院视频| 欧美aaaaa性bbbbb小妇| 日韩视频在线观看视频| 久久久国际精品|