久久精品中文字幕av,av.涩涩涩涩涩涩涩涩,亚洲国产日韩欧美精品成人久久久,成人福利电影免费在线观看,日产国产原创av,日韩av午夜激情,bt天堂中文字幕,超级碰人妻在线视频,欧美老熟妇久久一区二区

ThinkChat3.0新版上線,打造企業(yè)超級智能體和OPC神器,直接交付工作成果而非僅僅是給出答案,送30W Token,即刻開啟你的AI之旅 廣告
接下來的幾章中,我們將會看一下一些用來操作文本的工具。正如我們所見到的,在類 Unix 的 操作系統(tǒng)中,比如 Linux 中,文本數(shù)據(jù)起著舉足輕重的作用。但是在我們能完全理解這些工具提供的 所有功能之前,我們不得不先看看,經(jīng)常與這些工具的高級使用相關(guān)聯(lián)的一門技術(shù)——正則表達(dá)式。 我們已經(jīng)瀏覽了許多由命令行提供的功能和工具,我們遇到了一些真正神秘的 shell 功能和命令, 比如 shell 展開和引用,鍵盤快捷鍵,和命令歷史,更不用說 vi 編輯器了。正則表達(dá)式延續(xù)了 這種“傳統(tǒng)”,而且有可能(備受爭議地)是其中最神秘的功能。這并不是說花費時間來學(xué)習(xí)它們 是不值得的,而是恰恰相反。雖然它們的全部價值可能不能立即顯現(xiàn),但是較強理解這些功能 使我們能夠表演令人驚奇的技藝。什么是正則表達(dá)式? 簡而言之,正則表達(dá)式是一種符號表示法,被用來識別文本模式。在某種程度上,它們與匹配 文件和路徑名的 shell 通配符比較相似,但其規(guī)模更龐大。許多命令行工具和大多數(shù)的編程語言 都支持正則表達(dá)式,以此來幫助解決文本操作問題。然而,并不是所有的正則表達(dá)式都是一樣的, 這就進一步混淆了事情;不同工具以及不同語言之間的正則表達(dá)式都略有差異。我們將會限定 POSIX 標(biāo)準(zhǔn)中描述的正則表達(dá)式(其包括了大多數(shù)的命令行工具),供我們討論, 與許多編程語言(最著名的 Perl 語言)相反,它們使用了更多和更豐富的符號集。 ## grep 我們將使用的主要程序是我們的老朋友,grep 程序,它會用到正則表達(dá)式。實際上,“grep”這個名字 來自于短語“global regular expression print”,所以我們能看出 grep 程序和正則表達(dá)式有關(guān)聯(lián)。 本質(zhì)上,grep 程序會在文本文件中查找一個指定的正則表達(dá)式,并把匹配行輸出到標(biāo)準(zhǔn)輸出。 到目前為止,我們已經(jīng)使用 grep 程序查找了固定的字符串,就像這樣: ~~~ [me@linuxbox ~]$ ls /usr/bin | grep zip ~~~ 這個命令會列出,位于目錄 /usr/bin 中,文件名中包含子字符串“zip”的所有文件。 這個 grep 程序以這樣的方式來接受選項和參數(shù): ~~~ grep [options] regex [file...] ~~~ 這里的 regx 是指一個正則表達(dá)式。 這是一個常用的 grep 選項列表: 表20-1: grep 選項 | 選項 | 描述 | |-------|---------| | -i | 忽略大小寫。不會區(qū)分大小寫字符。也可用--ignore-case 來指定。 | | -v | 不匹配。通常,grep 程序會打印包含匹配項的文本行。這個選項導(dǎo)致 grep 程序 只會不包含匹配項的文本行。也可用--invert-match 來指定。 | | -c | 打印匹配的數(shù)量(或者是不匹配的數(shù)目,若指定了-v 選項),而不是文本行本身。 也可用--count 選項來指定。 | | -l | 打印包含匹配項的文件名,而不是文本行本身,也可用--files-with-matches 選項來指定。 | | -L | 相似于-l 選項,但是只是打印不包含匹配項的文件名。也可用--files-without-match 來指定。 | | -n | 在每個匹配行之前打印出其位于文件中的相應(yīng)行號。也可用--line-number 選項來指定。 | | -h | 應(yīng)用于多文件搜索,不輸出文件名。也可用--no-filename 選項來指定。 | 為了更好的探究 grep 程序,讓我們創(chuàng)建一些文本文件來搜尋: ~~~ [me@linuxbox ~]$ ls /bin > dirlist-bin.txt [me@linuxbox ~]$ ls /usr/bin > dirlist-usr-bin.txt [me@linuxbox ~]$ ls /sbin > dirlist-sbin.txt [me@linuxbox ~]$ ls /usr/sbin > dirlist-usr-sbin.txt [me@linuxbox ~]$ ls dirlist*.txt dirlist-bin.txt dirlist-sbin.txt dirlist-usr-sbin.txt dirlist-usr-bin.txt ~~~ 我們能夠?qū)ξ覀兊奈募斜韴?zhí)行簡單的搜索,像這樣: ~~~ [me@linuxbox ~]$ grep bzip dirlist*.txt dirlist-bin.txt:bzip2 dirlist-bin.txt:bzip2recover ~~~ 在這個例子里,grep 程序在所有列出的文件中搜索字符串 bzip,然后找到兩個匹配項,其都在 文件 dirlist-bin.txt 中。如果我們只是對包含匹配項的文件列表,而不是對匹配項本身感興趣 的話,我們可以指定-l 選項: ~~~ [me@linuxbox ~]$ grep -l bzip dirlist*.txt dirlist-bin.txt ~~~ 相反地,如果我們只想查看不包含匹配項的文件列表,我們可以這樣操作: ~~~ [me@linuxbox ~]$ grep -L bzip dirlist*.txt dirlist-sbin.txt dirlist-usr-bin.txt dirlist-usr-sbin.txt ~~~ ## 元字符和文本 它可能看起來不明顯,但是我們的 grep 程序一直使用了正則表達(dá)式,雖然是非常簡單的例子。 這個正則表達(dá)式“bzip”意味著,匹配項所在行至少包含4個字符,并且按照字符 “b”, “z”, “i”, 和 “p”的順序 出現(xiàn)在匹配行的某處,字符之間沒有其它的字符。字符串“bzip”中的所有字符都是原義字符,因為 它們匹配本身。除了原義字符之外,正則表達(dá)式也可能包含元字符,其被用來指定更復(fù)雜的匹配項。 正則表達(dá)式元字符由以下字符組成: ~~~ ^ $ . [ ] { } - ? * + ( ) | \ ~~~ 然后其它所有字符都被認(rèn)為是原義字符,雖然在個別情況下,反斜杠會被用來創(chuàng)建元序列, 也允許元字符被轉(zhuǎn)義為原義字符,而不是被解釋為元字符。 > 注意:正如我們所見到的,當(dāng) shell 執(zhí)行展開的時候,許多正則表達(dá)式元字符,也是對 shell 有特殊 含義的字符。當(dāng)我們在命令行中傳遞包含元字符的正則表達(dá)式的時候,把元字符用引號引起來至關(guān)重要, 這樣可以阻止 shell 試圖展開它們。 ## 任何字符 我們將要查看的第一個元字符是圓點字符,其被用來匹配任意字符。如果我們在正則表達(dá)式中包含它, 它將會匹配在此位置的任意一個字符。這里有個例子: ~~~ [me@linuxbox ~]$ grep -h '.zip' dirlist*.txt bunzip2 bzip2 bzip2recover gunzip gzip funzip gpg-zip preunzip prezip prezip-bin unzip unzipsfx ~~~ 我們在文件中查找包含正則表達(dá)式“.zip”的文本行。對于搜索結(jié)果,有幾點需要注意一下。 注意沒有找到這個 zip 程序。這是因為在我們的正則表達(dá)式中包含的圓點字符把所要求的匹配項的長度 增加到四個字符,并且字符串“zip”只包含三個字符,所以這個 zip 程序不匹配。另外,如果我們的文件列表 中有一些文件的擴展名是.zip,則它們也會成為匹配項,因為文件擴展名中的圓點符號也會被看作是 “任意字符”。 ## 錨點 在正則表達(dá)式中,插入符號和美元符號被看作是錨點。這意味著正則表達(dá)式 只有在文本行的開頭或末尾被找到時,才算發(fā)生一次匹配。 ~~~ [me@linuxbox ~]$ grep -h '^zip' dirlist*.txt zip zipcloak zipgrep zipinfo zipnote zipsplit [me@linuxbox ~]$ grep -h 'zip$' dirlist*.txt gunzip gzip funzip gpg-zip preunzip prezip unzip zip [me@linuxbox ~]$ grep -h '^zip$' dirlist*.txt zip ~~~ 這里我們分別在文件列表中搜索行首,行尾以及行首和行尾同時包含字符串“zip”(例如,zip 獨占一行)的匹配行。 注意正則表達(dá)式‘^$’(行首和行尾之間沒有字符)會匹配空行。 ## 字謎助手 到目前為止,甚至憑借我們有限的正則表達(dá)式知識,我們已經(jīng)能做些有意義的事情了。 我妻子喜歡玩字謎游戲,有時候她會因為一個特殊的問題,而向我求助。類似這樣的問題,“一個 有五個字母的單詞,它的第三個字母是‘j’,最后一個字母是‘r’,是哪個單詞?”這類問題會 讓我動腦筋想想。 你知道你的 Linux 系統(tǒng)中帶有一本英文字典嗎?千真萬確??匆幌?/usr/share/dict 目錄,你就能找到一本, 或幾本。存儲在此目錄下的字典文件,其內(nèi)容僅僅是一個長長的單詞列表,每行一個單詞,按照字母順序排列。在我的 系統(tǒng)中,這個文件僅包含98,000個單詞。為了找到可能的上述字謎的答案,我們可以這樣做: ~~~ [me@linuxbox ~]$ grep -i '^..j.r$' /usr/share/dict/words Major major ~~~ 使用這個正則表達(dá)式,我們能在我們的字典文件中查找到包含五個字母,且第三個字母 是“j”,最后一個字母是“r”的所有單詞。 ## 中括號表達(dá)式和字符類 除了能夠在正則表達(dá)式中的給定位置匹配任意字符之外,通過使用中括號表達(dá)式, 我們也能夠從一個指定的字符集合中匹配一個單個的字符。通過中括號表達(dá)式,我們能夠指定 一個字符集合(包含在不加中括號的情況下會被解釋為元字符的字符)來被匹配。在這個例子里,使用了一個兩個字符的集合: ~~~ [me@linuxbox ~]$ grep -h '[bg]zip' dirlist*.txt bzip2 bzip2recover gzip ~~~ 我們匹配包含字符串“bzip”或者“gzip”的任意行。 一個字符集合可能包含任意多個字符,并且元字符被放置到中括號里面后會失去了它們的特殊含義。 然而,在兩種情況下,會在中括號表達(dá)式中使用元字符,并且有著不同的含義。第一個元字符 是插入字符,其被用來表示否定;第二個是連字符字符,其被用來表示一個字符區(qū)域。 ## 否定 如果在正則表示式中的第一個字符是一個插入字符,則剩余的字符被看作是不會在給定的字符位置出現(xiàn)的 字符集合。通過修改之前的例子,我們試驗一下: ~~~ [me@linuxbox ~]$ grep -h '[^bg]zip' dirlist*.txt bunzip2 gunzip funzip gpg-zip preunzip prezip prezip-bin unzip unzipsfx ~~~ 通過激活否定操作,我們得到一個文件列表,它們的文件名都包含字符串“zip”,并且“zip”的前一個字符 是除了“b”和“g”之外的任意字符。注意文件 zip 沒有被發(fā)現(xiàn)。一個否定的字符集仍然在給定位置要求一個字符, 但是這個字符必須不是否定字符集的成員。 這個插入字符如果是中括號表達(dá)式中的第一個字符的時候,才會喚醒否定功能;否則,它會失去 它的特殊含義,變成字符集中的一個普通字符。 ## 傳統(tǒng)的字符區(qū)域 如果我們想要構(gòu)建一個正則表達(dá)式,它可以在我們的列表中找到每個以大寫字母開頭的文件,我們 可以這樣做: ~~~ [me@linuxbox ~]$ grep -h '^[ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist*.txt ~~~ 這只是一個在正則表達(dá)式中輸入26個大寫字母的問題。但是輸入所有字母非常令人煩惱,所以有另外一種方式: ~~~ [me@linuxbox ~]$ grep -h '^[A-Z]' dirlist*.txt MAKEDEV ControlPanel GET HEAD POST X X11 Xorg MAKEFLOPPIES NetworkManager NetworkManagerDispatcher ~~~ 通過使用一個三字符區(qū)域,我們能夠縮寫26個字母。任意字符的區(qū)域都能按照這種方式表達(dá),包括多個區(qū)域, 比如下面這個表達(dá)式就匹配了所有以字母和數(shù)字開頭的文件名: ~~~ [me@linuxbox ~]$ grep -h '^[A-Za-z0-9]' dirlist*.txt ~~~ 在字符區(qū)域中,我們看到這個連字符被特殊對待,所以我們怎樣在一個正則表達(dá)式中包含一個連字符呢? 方法就是使連字符成為表達(dá)式中的第一個字符??紤]一下這兩個例子: ~~~ [me@linuxbox ~]$ grep -h '[A-Z]' dirlist*.txt ~~~ 這會匹配包含一個大寫字母的文件名。然而: ~~~ [me@linuxbox ~]$ grep -h '[-AZ]' dirlist*.txt ~~~ 上面的表達(dá)式會匹配包含一個連字符,或一個大寫字母“A”,或一個大寫字母“Z”的文件名。 ## POSIX 字符集 這個傳統(tǒng)的字符區(qū)域在處理快速地指定字符集合的問題方面,是一個易于理解的和有效的方式。 不幸地是,它們不總是工作。到目前為止,雖然我們在使用 grep 程序的時候沒有遇到任何問題, 但是我們可能在使用其它程序的時候會遭遇困難。 回到第5章,我們看看通配符怎樣被用來完成路徑名展開操作。在那次討論中,我們說過在 某種程度上,那個字符區(qū)域被使用的方式幾乎與在正則表達(dá)式中的用法一樣,但是有一個問題: ~~~ [me@linuxbox ~]$ ls /usr/sbin/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]* /usr/sbin/MAKEFLOPPIES /usr/sbin/NetworkManagerDispatcher /usr/sbin/NetworkManager ~~~ (依賴于不同的 Linux 發(fā)行版,我們將得到不同的文件列表,有可能是一個空列表。這個例子來自于 Ubuntu) 這個命令產(chǎn)生了期望的結(jié)果——只有以大寫字母開頭的文件名,但是: ~~~ [me@linuxbox ~]$ ls /usr/sbin/[A-Z]* /usr/sbin/biosdecode /usr/sbin/chat /usr/sbin/chgpasswd /usr/sbin/chpasswd /usr/sbin/chroot /usr/sbin/cleanup-info /usr/sbin/complain /usr/sbin/console-kit-daemon ~~~ 通過這個命令我們得到整個不同的結(jié)果(只顯示了一部分結(jié)果列表)。為什么會是那樣? 說來話長,但是這個版本比較簡短: 追溯到 Unix 剛剛開發(fā)的時候,它只知道 ASCII 字符,并且這個特性反映了事實。在 ASCII 中,前32個字符 (數(shù)字0-31)都是控制碼(如 tabs,backspaces,和回車)。隨后的32個字符(32-63)包含可打印的字符, 包括大多數(shù)的標(biāo)點符號和數(shù)字0到9。再隨后的32個字符(64-95)包含大寫字符和一些更多的標(biāo)點符號。 最后的31個字符(96-127)包含小寫字母和更多的標(biāo)點符號?;谶@種安排方式,系統(tǒng)使用這種排序規(guī)則 的 ASCII: `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz` 這個不同于正常的字典順序,其像這樣: `aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ` 隨著 Unix 系統(tǒng)的知名度在美國之外的國家傳播開來,就需要支持不在 U.S.英語范圍內(nèi)的字符。 于是就擴展了這個 ASCII 字符表,使用了整個8位,添加了字符(數(shù)字128-255),這樣就 容納了更多的語言。 為了支持這種能力,POSIX 標(biāo)準(zhǔn)介紹了一種叫做 locale 的概念,其可以被調(diào)整,來為某個特殊的區(qū)域, 選擇所需的字符集。通過使用下面這個命令,我們能夠查看到我們系統(tǒng)的語言設(shè)置: ~~~ [me@linuxbox ~]$ echo $LANG en_US.UTF-8 ~~~ 通過這個設(shè)置,POSIX 相容的應(yīng)用程序?qū)褂米值渑帕许樞蚨皇?ASCII 順序。這就解釋了上述命令的行為。 當(dāng)[A-Z]字符區(qū)域按照字典順序解釋的時候,包含除了小寫字母“a”之外的所有字母,因此得到這樣的結(jié)果。 為了部分地解決這個問題,POSIX 標(biāo)準(zhǔn)包含了大量的字符集,其提供了有用的字符區(qū)域。 下表中描述了它們: 表20-2: POSIX 字符集 | 字符集 | 說明 | |-------|-------| | [:alnum:] | 字母數(shù)字字符。在 ASCII 中,等價于:[A-Za-z0-9] | | [:word:] | 與[:alnum:]相同, 但增加了下劃線字符。 | | [:alpha:] | 字母字符。在 ASCII 中,等價于:[A-Za-z] | | [:blank:] | 包含空格和 tab 字符。 | | [:cntrl:] | ASCII 的控制碼。包含了0到31,和127的 ASCII 字符。 | | [:digit:] | 數(shù)字0到9 | | [:graph:] | 可視字符。在 ASCII 中,它包含33到126的字符。 | | [:lower:] | 小寫字母。 | | [:punct:] | 標(biāo)點符號字符。在 ASCII 中,等價于: | | [:print:] | 可打印的字符。在[:graph:]中的所有字符,再加上空格字符。 | | [:space:] | 空白字符,包括空格,tab,回車,換行,vertical tab, 和 form feed.在 ASCII 中, 等價于:[ \t\r\n\v\f] | | [:upper:] | 大寫字母。 | | [:xdigit:] | 用來表示十六進制數(shù)字的字符。在 ASCII 中,等價于:[0-9A-Fa-f] | 甚至通過字符集,仍然沒有便捷的方法來表達(dá)部分區(qū)域,比如[A-M]。 通過使用字符集,我們重做上述的例題,看到一個改進的結(jié)果: ~~~ [me@linuxbox ~]$ ls /usr/sbin/[[:upper:]]* /usr/sbin/MAKEFLOPPIES /usr/sbin/NetworkManagerDispatcher /usr/sbin/NetworkManager ~~~ 記住,然而,這不是一個正則表達(dá)式的例子,而是 shell 正在執(zhí)行路徑名展開操作。我們在這里展示這個例子, 是因為 POSIX 規(guī)范的字符集適用于二者。 ## 恢復(fù)到傳統(tǒng)的排列順序 通過改變環(huán)境變量 LANG 的值,你可以選擇讓你的系統(tǒng)使用傳統(tǒng)的(ASCII)排列規(guī)則。如上所示,這個 LANG 變量包含了語種和字符集。這個值最初由你安裝 Linux 系統(tǒng)時所選擇的安裝語言決定。 使用 locale 命令,來查看 locale 的設(shè)置。 ~~~ [me@linuxbox ~]$ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= ~~~ 把這個 LANG 變量設(shè)置為 POSIX,來更改 locale,使其使用傳統(tǒng)的 Unix 行為。 ~~~ [me@linuxbox ~]$ export LANG=POSIX ~~~ 注意這個改動使系統(tǒng)為它的字符集使用 U.S.英語(更準(zhǔn)確地說,ASCII),所以要確認(rèn)一下這 是否是你真正想要的效果。通過把這條語句添加到你的.bashrc 文件中,你可以使這個更改永久有效。 ~~~ export LANG=POSIX ~~~ ## POSIX 基本的 Vs.擴展的正則表達(dá)式 就在我們認(rèn)為這已經(jīng)非常令人困惑了,我們卻發(fā)現(xiàn) POSIX 把正則表達(dá)式的實現(xiàn)分成了兩類: 基本正則表達(dá)式(BRE)和擴展的正則表達(dá)式(ERE)。既服從 POSIX 規(guī)范又實現(xiàn)了 BRE 的任意應(yīng)用程序,都支持我們目前研究的所有正則表達(dá)式特性。我們的 grep 程序就是其中一個。 BRE 和 ERE 之間有什么區(qū)別呢?這是關(guān)于元字符的問題。BRE 可以辨別以下元字符: ~~~ ^ $ . [ ] * ~~~ 其它的所有字符被認(rèn)為是文本字符。ERE 添加了以下元字符(以及與其相關(guān)的功能): ~~~ ( ) { } ? + | ~~~ 然而(這也是有趣的地方),在 BRE 中,字符“(”,“)”,“{”,和 “}”用反斜杠轉(zhuǎn)義后,被看作是元字符, 相反在 ERE 中,在任意元字符之前加上反斜杠會導(dǎo)致其被看作是一個文本字符。在隨后的討論中將會涵蓋 很多奇異的特性。 因為我們將要討論的下一個特性是 ERE 的一部分,我們將要使用一個不同的 grep 程序。照慣例, 一直由 egrep 程序來執(zhí)行這項操作,但是 GUN 版本的 grep 程序也支持?jǐn)U展的正則表達(dá)式,當(dāng)使用了-E 選項之后。 在 20 世紀(jì) 80 年代,Unix 成為一款非常流行的商業(yè)操作系統(tǒng),但是到了1988年,Unix 世界 一片混亂。許多計算機制造商從 Unix 的創(chuàng)建者 AT&T 那里得到了許可的 Unix 源碼,并且 供應(yīng)各種版本的操作系統(tǒng)。然而,在他們努力創(chuàng)造產(chǎn)品差異化的同時,每個制造商都增加了 專用的更改和擴展。這就開始限制了軟件的兼容性。 專有軟件供應(yīng)商一如既往,每個供應(yīng)商都試圖玩嬴游戲“鎖定”他們的客戶。這個 Unix 歷史上 的黑暗時代,就是今天眾所周知的 “the Balkanization”。 然后進入 IEEE( 電氣與電子工程師協(xié)會 )時代。在上世紀(jì) 80 年代中葉,IEEE 開始制定一套標(biāo)準(zhǔn), 其將會定義 Unix 系統(tǒng)( 以及類 Unix 的系統(tǒng) )如何執(zhí)行。這些標(biāo)準(zhǔn),正式成為 IEEE 1003, 定義了應(yīng)用程序編程接口( APIs ),shell 和一些實用程序,其將會在標(biāo)準(zhǔn)的類 Unix 操作系統(tǒng)中找到?!癙OSIX” 這個名字,象征著可移植的操作系統(tǒng)接口(為了額外的,添加末尾的 “X” ), 是由 Richard Stallman 建議的( 是的,的確是 Richard Stallman ),后來被 IEEE 采納。 ## Alternation 我們將要討論的擴展表達(dá)式的第一個特性叫做 alternation(交替),其是一款允許從一系列表達(dá)式 之間選擇匹配項的實用程序。就像中括號表達(dá)式允許從一系列指定的字符之間匹配單個字符那樣, alternation 允許從一系列字符串或者是其它的正則表達(dá)式中選擇匹配項。為了說明問題, 我們將會結(jié)合 echo 程序來使用 grep 命令。首先,讓我們試一個普通的字符串匹配: ~~~ [me@linuxbox ~]$ echo "AAA" | grep AAA AAA [me@linuxbox ~]$ echo "BBB" | grep AAA [me@linuxbox ~]$ ~~~ 一個相當(dāng)直截了當(dāng)?shù)睦?,我們?echo 的輸出管道給 grep,然后看到輸出結(jié)果。當(dāng)出現(xiàn) 一個匹配項時,我們看到它會打印出來;當(dāng)沒有匹配項時,我們看到?jīng)]有輸出結(jié)果。 現(xiàn)在我們將添加 alternation,以豎杠線元字符為標(biāo)記: ~~~ [me@linuxbox ~]$ echo "AAA" | grep -E 'AAA|BBB' AAA [me@linuxbox ~]$ echo "BBB" | grep -E 'AAA|BBB' BBB [me@linuxbox ~]$ echo "CCC" | grep -E 'AAA|BBB' [me@linuxbox ~]$ ~~~ 這里我們看到正則表達(dá)式’AAA|BBB’,這意味著“匹配字符串 AAA 或者是字符串 BBB”。注意因為這是 一個擴展的特性,我們給 grep 命令(雖然我們能以 egrep 程序來代替)添加了-E 選項,并且我們 把這個正則表達(dá)式用單引號引起來,為的是阻止 shell 把豎杠線元字符解釋為一個 pipe 操作符。 Alternation 并不局限于兩種選擇: ~~~ [me@linuxbox ~]$ echo "AAA" | grep -E 'AAA|BBB|CCC' AAA ~~~ 為了把 alternation 和其它正則表達(dá)式元素結(jié)合起來,我們可以使用()來分離 alternation。 ~~~ [me@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' dirlist*.txt ~~~ 這個表達(dá)式將會在我們的列表中匹配以“bz”,或“gz”,或“zip”開頭的文件名。如果我們刪除了圓括號, 這個表達(dá)式的意思: ~~~ [me@linuxbox ~]$ grep -Eh '^bz|gz|zip' dirlist*.txt ~~~ 會變成匹配任意以“bz”開頭,或包含“gz”,或包含“zip”的文件名。 ## 限定符 擴展的正則表達(dá)式支持幾種方法,來指定一個元素被匹配的次數(shù)。 ### ? - 匹配零個或一個元素 這個限定符意味著,實際上,“使前面的元素可有可無?!北确秸f我們想要查看一個電話號碼的真實性, 如果它匹配下面兩種格式的任意一種,我們就認(rèn)為這個電話號碼是真實的: ~~~ (nnn) nnn-nnnn nnn nnn-nnnn ~~~ 這里的“n”是一個數(shù)字。我們可以構(gòu)建一個像這樣的正則表達(dá)式: ~~~ ^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$ ~~~ 在這個表達(dá)式中,我們在圓括號之后加上一個問號,來表示它們將被匹配零次或一次。再一次,因為 通常圓括號都是元字符(在 ERE 中),所以我們在圓括號之前加上了反斜杠,使它們成為文本字符。 讓我們試一下: ~~~ [me@linuxbox ~]$ echo "(555) 123-4567" | grep -E '^\(?[0-9][0-9][0-9] \)? [0-9][0-9][0-9]$' (555) 123-4567 [me@linuxbox ~]$ echo "555 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\) ? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$' 555 123-4567 [me@linuxbox ~]$ echo "AAA 123-4567" | grep -E '^\(?[0-9][0-9][0-9]\) ? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$' [me@linuxbox ~]$ ~~~ 這里我們看到這個表達(dá)式匹配這個電話號碼的兩種形式,但是不匹配包含非數(shù)字字符的號碼。 ### * - 匹配零個或多個元素 像 ? 元字符一樣,這個 * 被用來表示一個可選的字符;然而,又與 ? 不同,匹配的字符可以出現(xiàn) 任意多次,不僅是一次。比方說我們想要知道是否一個字符串是一句話;也就是說,字符串開始于 一個大寫字母,然后包含任意多個大寫和小寫的字母和空格,最后以句號收尾。為了匹配這個(非常粗略的) 語句的定義,我們能夠使用一個像這樣的正則表達(dá)式: ~~~ [[:upper:]][[:upper:][:lower:] ]*. ~~~ 這個表達(dá)式由三個元素組成:一個包含[:upper:]字符集的中括號表達(dá)式,一個包含[:upper:]和[:lower:] 兩個字符集以及一個空格的中括號表達(dá)式,和一個被反斜杠字符轉(zhuǎn)義過的圓點。第二個元素末尾帶有一個 *元字符,所以在開頭的大寫字母之后,可能會跟隨著任意數(shù)目的大寫和小寫字母和空格,并且匹配: ~~~ [me@linuxbox ~]$ echo "This works." | grep -E '[[:upper:]][[:upper:][[:lower:]]*.' This works. [me@linuxbox ~]$ echo "This Works." | grep -E '[[:upper:]][[:upper:][[:lower:]]*.' This Works. [me@linuxbox ~]$ echo "this does not" | grep -E '[[:upper:]][[:upper: ][[:lower:]]*.' [me@linuxbox ~]$ ~~~ 這個表達(dá)式匹配前兩個測試語句,但不匹配第三個,因為第三個句子缺少開頭的大寫字母和末尾的句號。 ### + - 匹配一個或多個元素 這個 + 元字符的作用與 * 非常相似,除了它要求前面的元素至少出現(xiàn)一次匹配。這個正則表達(dá)式只匹配 那些由一個或多個字母字符組構(gòu)成的文本行,字母字符之間由單個空格分開: ~~~ ^([[:alpha:]]+ ?)+$ [me@linuxbox ~]$ echo "This that" | grep -E '^([[:alpha:]]+ ?)+$' This that [me@linuxbox ~]$ echo "a b c" | grep -E '^([[:alpha:]]+ ?)+$' a b c [me@linuxbox ~]$ echo "a b 9" | grep -E '^([[:alpha:]]+ ?)+$' [me@linuxbox ~]$ echo "abc d" | grep -E '^([[:alpha:]]+ ?)+$' [me@linuxbox ~]$ ~~~ 我們看到這個正則表達(dá)式不匹配“a b 9”這一行,因為它包含了一個非字母的字符;它也不匹配 “abc d” ,因為在字符“c”和“d”之間不止一個空格。 ### { } - 匹配特定個數(shù)的元素 這個 { 和 } 元字符都被用來表達(dá)要求匹配的最小和最大數(shù)目。它們可以通過四種方法來指定: 表20-3: 指定匹配的數(shù)目 | 限定符 | 意思 | |-------|-------| | {n} | 匹配前面的元素,如果它確切地出現(xiàn)了 n 次。 | | {n,m} | 匹配前面的元素,如果它至少出現(xiàn)了 n 次,但是不多于 m 次。 | | {n,} | 匹配前面的元素,如果它出現(xiàn)了 n 次或多于 n 次。 | | {,m} | 匹配前面的元素,如果它出現(xiàn)的次數(shù)不多于 m 次。 | 回到之前處理電話號碼的例子,我們能夠使用這種指定重復(fù)次數(shù)的方法來簡化我們最初的正則表達(dá)式: ~~~ ^\(?[0-9][0-9][0-9]\)? [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$ ~~~ 簡化為: ~~~ ^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$ ~~~ 讓我們試一下: ~~~ [me@linuxbox ~]$ echo "(555) 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' (555) 123-4567 [me@linuxbox ~]$ echo "555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' 555 123-4567 [me@linuxbox ~]$ echo "5555 123-4567" | grep -E '^\(?[0-9]{3}\)? [0-9]{3}-[0-9]{4}$' [me@linuxbox ~]$ ~~~ 我們可以看到,我們修訂的表達(dá)式能成功地驗證帶有和不帶有圓括號的數(shù)字,而拒絕那些格式 不正確的數(shù)字。 ## 讓正則表達(dá)式工作起來 讓我們看看一些我們已經(jīng)知道的命令,然后看一下它們怎樣使用正則表達(dá)式。 ### 通過 grep 命令來驗證一個電話簿 在我們先前的例子中,我們查看過單個電話號碼,并且檢查了它們的格式。一個更現(xiàn)實的 情形是檢查一個數(shù)字列表,所以我們先創(chuàng)建一個列表。我們將背誦一個神奇的咒語到命令行中。 它會很神奇,因為我們還沒有涵蓋所涉及的大部分命令,但是不要擔(dān)心。我們將在后面的章節(jié)里面 討論那些命令。這里是這個咒語: ~~~ [me@linuxbox ~]$ for i in {1..10}; do echo "(${RANDOM:0:3}) ${RANDO M:0:3}-${RANDOM:0:4}" >> phonelist.txt; done ~~~ 這個命令會創(chuàng)建一個包含10個電話號碼的名為 phonelist.txt 的文件。每次重復(fù)這個命令的時候, 另外10個號碼會被添加到這個列表中。我們也能夠更改命令開頭附近的數(shù)值10,來生成或多或少的 電話號碼。如果我們查看這個文件的內(nèi)容,然而我們會發(fā)現(xiàn)一個問題: ~~~ [me@linuxbox ~]$ cat phonelist.txt (232) 298-2265 (624) 381-1078 (540) 126-1980 (874) 163-2885 (286) 254-2860 (292) 108-518 (129) 44-1379 (458) 273-1642 (686) 299-8268 (198) 307-2440 ~~~ 一些號碼是殘缺不全的,但是它們很適合我們的需求,因為我們將使用 grep 命令來驗證它們。 一個有用的驗證方法是掃描這個文件,查找無效的號碼,并把搜索結(jié)果顯示到屏幕上: ~~~ [me@linuxbox ~]$ grep -Ev '^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$' phonelist.txt (292) 108-518 (129) 44-1379 [me@linuxbox ~]$ ~~~ 這里我們使用-v 選項來產(chǎn)生相反的匹配,因此我們將只輸出不匹配指定表達(dá)式的文本行。這個 表達(dá)式自身的兩端都包含定位點(錨)元字符,是為了確保這個號碼的兩端沒有多余的字符。 這個表達(dá)式也要求圓括號出現(xiàn)在一個有效的號碼中,不同于我們先前電話號碼的實例。 ### 用 find 查找丑陋的文件名 這個 find 命令支持一個基于正則表達(dá)式的測試。當(dāng)在使用正則表達(dá)式方面比較 find 和 grep 命令的時候, 還有一個重要問題要牢記在心。當(dāng)某一行包含的字符串匹配上了一個表達(dá)式的時候,grep 命令會打印出這一行, 然而 find 命令要求路徑名精確地匹配這個正則表達(dá)式。在下面的例子里面,我們將使用帶有一個正則 表達(dá)式的 find 命令,來查找每個路徑名,其包含的任意字符都不是以下字符集中的一員。 ~~~ [-\_./0-9a-zA-Z] ~~~ 這樣一種掃描會發(fā)現(xiàn)包含空格和其它潛在不規(guī)范字符的路徑名: ~~~ [me@linuxbox ~]$ find . -regex '.*[^-\_./0-9a-zA-Z].*' ~~~ 由于要精確地匹配整個路徑名,所以我們在表達(dá)式的兩端使用了.*,來匹配零個或多個字符。 在表達(dá)式中間,我們使用了否定的中括號表達(dá)式,其包含了我們一系列可接受的路徑名字符。 ### 用 locate 查找文件 這個 locate 程序支持基本的(--regexp 選項)和擴展的(--regex 選項)正則表達(dá)式。通過 locate 命令,我們能夠執(zhí)行許多與先前操作 dirlist 文件時相同的操作: ~~~ [me@linuxbox ~]$ locate --regex 'bin/(bz|gz|zip)' /bin/bzcat /bin/bzcmp /bin/bzdiff /bin/bzegrep /bin/bzexe /bin/bzfgrep /bin/bzgrep /bin/bzip2 /bin/bzip2recover /bin/bzless /bin/bzmore /bin/gzexe /bin/gzip /usr/bin/zip /usr/bin/zipcloak /usr/bin/zipgrep /usr/bin/zipinfo /usr/bin/zipnote /usr/bin/zipsplit ~~~ 通過使用 alternation,我們搜索包含 bin/bz,bin/gz,或/bin/zip 字符串的路徑名。 ### 在 less 和 vim 中查找文本 less 和 vim 兩者享有相同的文本查找方法。按下/按鍵,然后輸入正則表達(dá)式,來執(zhí)行搜索任務(wù)。 如果我們使用 less 程序來瀏覽我們的 phonelist.txt 文件: ~~~ [me@linuxbox ~]$ less phonelist.txt ~~~ 然后查找我們有效的表達(dá)式: ~~~ (232) 298-2265 (624) 381-1078 (540) 126-1980 (874) 163-2885 (286) 254-2860 (292) 108-518 (129) 44-1379 (458) 273-1642 (686) 299-8268 (198) 307-2440 ~ /^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$ ~~~ less 將會高亮匹配到的字符串,這樣就很容易看到無效的電話號碼: ~~~ (232) 298-2265 (624) 381-1078 (540) 126-1980 (874) 163-2885 (286) 254-2860 (292) 108-518 (129) 44-1379 (458) 273-1642 (686) 299-8268 (198) 307-2440 ~ (END) ~~~ 另一方面,vim 支持基本的正則表達(dá)式,所以我們用于搜索的表達(dá)式看起來像這樣: ~~~ /([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\} ~~~ 我們看到表達(dá)式幾乎一樣;然而,在擴展表達(dá)式中,許多被認(rèn)為是元字符的字符在基本的表達(dá)式 中被看作是文本字符。只有用反斜杠把它們轉(zhuǎn)義之后,它們才被看作是元字符。 依賴于系統(tǒng)中 vim 的特殊配置,匹配項將會被高亮。如若不是,試試這個命令模式: ~~~ :hlsearch ~~~ 來激活搜索高亮功能。 注意:依賴于你的發(fā)行版,vim 有可能支持或不支持文本搜索高亮功能。尤其是 Ubuntu 自帶了 一款非常簡化的 vim 版本。在這樣的系統(tǒng)中,你可能要使用你的軟件包管理器來安裝一個功能 更完備的 vim 版本。 ## 總結(jié)歸納 在這章中,我們已經(jīng)看到幾個使用正則表達(dá)式例子。如果我們使用正則表達(dá)式來搜索那些使用正則表達(dá)式的應(yīng)用程序, 我們可以找到更多的使用實例。通過查找手冊頁,我們就能找到: ~~~ [me@linuxbox ~]$ cd /usr/share/man/man1 [me@linuxbox man1]$ zgrep -El 'regex|regular expression' *.gz ~~~ 這個 zgrep 程序是 grep 的前端,允許 grep 來讀取壓縮文件。在我們的例子中,我們在手冊文件所在的 目錄中,搜索壓縮文件中的內(nèi)容。這個命令的結(jié)果是一個包含字符串“regex”或者“regular expression”的文件列表。正如我們所看到的,正則表達(dá)式會出現(xiàn)在大量程序中。 基本正則表達(dá)式中有一個特性,我們沒有涵蓋。叫做反引用,這個特性在下一章中會被討論到。 ## 拓展閱讀 有許多在線學(xué)習(xí)正則表達(dá)式的資源,包括各種各樣的教材和速記表。 另外,關(guān)于下面的背景話題,Wikipedia 有不錯的文章。 * POSIX:?[http://en.wikipedia.org/wiki/Posix](http://en.wikipedia.org/wiki/Posix) * ASCII:?[http://en.wikipedia.org/wiki/Ascii](http://en.wikipedia.org/wiki/Ascii)
久久精品国产av网| 秋霞电影韩国一区二区二区三区| 日本aaaa视频在线观看| 91欧美亚洲综合网| 日韩av在线观看卡一卡| 精品人妻一区二区三区线国色天香| 亚洲av亚洲av亚洲| 男人亚洲天堂2018| 久久久久久人妻无码| 久久精品国产91久久麻豆自制| av在线免费播放成人| 亚洲一区视频大全| 精品aa级中文字幕人妻| 久久 99 精品视频| 视频一区视频二区三区| 骚妻少妇一区二区| 久久久精品99国产国产精| 九九re精品免费视频| 18久久久免费视频| 18禁成年av网站免费看| 2019年中文字幕在线看| 久久免费视频观看99| 亚洲国模在线视频| 三级亚洲天堂亚洲天堂| 久久久久精美免费观看视频| 明天我们好好过高清免费| 亚洲激情网在线播放| 日韩乱妇乱女熟妇熟女网红| 在线免费av大香蕉| 日日夜夜夜视频伊人久久 | 蜜臀av 麻豆av| 欧美日韩亚洲大片在线| 欧美va亚洲va精品| 男人亚洲天堂2018| 欧美日韩精品综合在线一区二区| 久久视频精彩在线观看| 亚洲国模私拍视频| 99热在线精品免费观看| 蜜臀久久99精品久久久久久久久 | 亚洲激情 欧美激情| 欧美又色又爽又黄又粗暴| 色综合久久久久久久久| 久久爱免费视频16| 日韩欧美颜色渔网| 五月婷婷51视频免费| 丰满的人妻一区七区| 亚洲人妻中文字幕一区二区| 另类欧美亚洲中文综合| 久久视频精彩在线观看| 色视频精品视频在线观看| 亚洲女人中文字幕在线| 午夜国产福利电影| 大香蕉久草网一区二区三区| 激情一区日韩一区欧美一区| 丰满人妻一区二区三区视频看看| 99re6热在线视频免费观看| 日韩av手机在线电影| 久久久久久久久久无吗| 亚洲欧美日韩国产另类专区| 999精品插丰满少妇人妻| 国产 另类 在线 欧美日韩| 中文字幕一区二区三区中文字幕| 狠狠久久综合丁香777米奇| 成年人在线免费观看黄色片| 久久精品久久一区二区三区| 99日本亚洲精品视频| 亚洲欧洲色图动图| 蜜臀av 麻豆av| 国产乱子伦视频免费| 91久久国产综合久久91在线| 久久久久久久黄色午夜精品| 午夜精品久久婷婷蜜桃| 麻豆视传媒官网直接进入免费观看| 精品一级国产 av| 91插插插操美女视频| 欧美熟女vides| 美女18禁久久久久麻豆| 337p亚洲精品色噜噜| 久久视频黄色观看网站| 国产乱子伦视频免费| 蜜臀av久久久久av蜜臀 | 亚洲天堂黄色在线| 日韩毛片亚洲av| 久久精品国产久精果冻传媒| 天天日天天干天天爱天天| 欧美日韩亚洲国产ay| 91九色porny国产视频| 亚洲天堂黄色在线| 婷婷亚洲天堂中文字幕| 精品人妻熟女在线视频| 亚洲香蕉av电影| 91熟女视频在线观看| 一级久久久久久久18| av激情网站在线观看| 91丝袜放荡丝袜脚交| 日韩av在线观看免费看看 | 日韩精品在线视频播放| 亚洲中文字幕福利视频| 日韩乱妇乱女熟妇熟女网红| 成人av电影免费版| huangse网站在线观看| 99爱99久久久久久久久久| 91精品人妻一区二区三区四区| 亚洲情欲大片在线观看| 日韩av电影com| 久久精品琪琪男人的天堂| 久久精品国产久精果冻传媒| 久久久久国产精品夜夜夜| 久久午夜福利电影免费试看| 99精品视频在线看17| av福利网站在线观看| 久久视频黄色观看网站| 亚洲国产精品97久久宅男| 香蕉久久久久久久久久久久女| 激情一区日韩一区欧美一区| 精品国产丝袜久久久一区二区| w疯狂的少妇2做爰韩国| 国产无av码在线观看| 久久爱免费视频16| 日韩av一区二区三区久久久 | 日韩中文字幕有码人妻在线| 91精品人妻一区二区三区四区| 久久草免费在线视频| 蜜臀av久久久久av蜜臀| 麻豆免费国产福利免费国产福利| 少妇高潮喷水久久久久久桃花| 精品国产麻豆免费成人网| 日本黄页在线播放日本网站| 亚洲五月婷婷激情图片| 欧美一区二区三日韩| 少妇人妻一区2区中文字幕| 亚洲国产精品午夜av| 日本二次元少女裸| 国产精品久久久久久久漫画| 久久视频免费有精品| 日韩av手机在线电影| youwu视频在线| 青青青青青欧美在线视频观看| 国产剧情高清在线观看| 日韩人妻插舔激情午夜 | 少妇人妻一区2区中文字幕 | 日韩av福利大片在线观看| 婷婷激情五月天图片| 亚洲熟妇免费在线视频| 91精品乱码久久久久久| 欧美一区二区三区激情无套| 丝袜日韩中文字幕| 欧美一区二区性久久久| 亚洲综合在线伊人| av一级二级三级久久久| 亚洲激情视频在线视频| 欧美日韩精品综合在线一区二区| 日韩免费美女电影| 91精品人妻一区二区三区四区| 国产成人免费精品视频大全 | 日本黄色成年视频| 精品国产久久久久蜜臀| 四虎网站免费av| 高清一区二区三区日本4| 日韩久久久三级电影| 女人体内射精一区二区三区| 蜜臀久久99精品久久久久久久久 | 亚洲欧美日韩综合专区| 在线国产小视频麻豆| 天天日天天干天天色| 久久久久久久久久久久久熟女a∨| 天天摸天天舔天天爱| 在线观看色有小视频| 日韩av手机在线电影| 久久精品国产亚洲av不卡性色| 一本色道久久亚洲综合精品蜜桃| 日韩精品久久久久久久软件| laoyawo老鸭窝在线视频| 亚洲欧美日韩在线中文字幕小| 麻豆亚州av熟女国产一区二| 日韩 美女 在线观看| 日本av男优巧克力| 亚洲激情熟女色图| 国产精品99精品一区二区三区∴| av国产一区二区三区| 成年人免费看黄色片| 99九九99九九热视频| 久久婷婷激情综合色综合俺也去| 五月婷婷六月丁香资源| 亚洲精品一区二区三区丝袜| 日韩高清av一区| 亚洲午夜电影久久久| 日韩成视频在线播放| 久久五月婷婷综合视频| 婷婷在线综合观看视频| 亚洲国产精选久久| 欧美日韩在线卡一卡二卡三| 丰满熟女一区二区三区在线 | 亚洲日韩视频高清在线观看| 伊人久久婷婷av| 牛牛成人手机视频在线| 日韩精品刺激视频| 久久蜜臀精品一区二区| 亚洲视频另类专区| 亚洲国产精品久久久久婷婷av| 人妻熟 中文字幕| 国产成人av最新网址| 色yeye香蕉凹凸人妻三区 | 5858s在线视频| 日韩日韩av在线| 91久久精品日日躁夜夜躁| 天美麻豆成人av精品小说| 日韩av电影com| 欧美三级中文字幕久久精品| 日韩中文字幕在线网站| 91精品久久久久久久久不卡网站 | 国产欧美日韩制服丝袜在线| 国产精品久久久久久吹吹潮| 成人黄色国产网站在线观看| 久久视频在线免费播放| 99精品高清视频一区二区| 日韩av中文网址| 免费人妻一区二区三区免费视频 | 精品欧美乱子伦一区二区三区| 综合激情伊人久久| av传媒高清影院免费| 日韩欧美 国产精品| 精品久久久久久亚洲国产999| 人人妻人人澡人人爽国产一区| www.视频一区二区三区| 日本少妇人妻xxxx| 国产日韩亚洲大尺度高清| 色婷婷久久久swag精品| 亚洲五月婷婷视频| 色哟哟视频在线观看国产| 99久久久99久久91熟女| 5858s在线视频| 国产精品久久久久成人片| 国产丝袜香蕉在线观看 | 国产欧美日韩亚洲另类第一第二页 | 青青草久久大香蕉| 国产欧美日韩制服丝袜在线| 日日碰狠狠躁久久躁一区二区| 成人午夜激情福利片| 亚洲国产欧美激情图区| 无码人妻精品一区二区三区久久| 精品视频在线观看一区二区97 | 日韩国产精品电影网| 日韩av在线天堂| 蜜桃黄色av网站免费播放| 国产三级久久久999111| 久久蜜臀精品一区二区| 视频免费在线观看91| 日韩精品在线视频播放| 免费a级电影在线观看| 亚洲欧美日韩在线中文字幕小| 久久婷婷亚洲中文一区二区 | 国产日韩欧美成人一二三区| 国产一区二区免费五遮挡| 欧美日本一道本一区二区| 精品一区二区三区四区日产| 国产一区二区不卡91| 久久久97精品国产| 亚洲中文字幕福利视频| 色综合久久999| 国产日韩欧美成人一二三区| 88av亚洲精品日韩一区二区| 黄色片一级美女黄色片| 国产又大又长又粗又硬免费视频| 国产精品首页在线播放| 老鸭子在线观看免费播放| 欧美老熟妇重口另类xxx| 国产中文字幕在线91| 国产一区二区高清在线播放| 在线免费av大香蕉| 欧美日韩综合国产精品| 伊人久久中文字幕综合观看| 999精品插丰满少妇人妻| 亚洲熟妇av日韩熟妇在线| 国产日韩一区二区三区啪啪啪| 蜜臀av久久久久av蜜臀| 激情亚洲一区蜜桃在线| 欧美日韩精品亚洲欧美| 91人妻人人澡.人人精品| 大香蕉久草网一区二区三区| 国产成人av吴梦梦视频| 五月天色图婷婷亚洲| 久久精品国产91久久麻豆自制| 综合激情伊人久久| 视频一区视频二区三区| 国产青青91av在线视频| 日本久久久大片中文字幕| 自拍偷拍亚洲欧美另类| 日韩草比网站在线免费观看 | 色婷婷一区二区三区四区五| 久久99精品久久久久久三级 | 久久久96精品久久久| 日韩二区不卡视频| 91大神精品大长腿在线观看| 明天我们好好过高清免费| 日韩中文字幕有码人妻在线| 在线观看色有小视频| 综合激情五月天久久| 欧美日韩亚洲国产ay| 1024 国产高清の最新合集| 亚洲av精品久久久蜜| 欧美熟女vides| 久久2020精品免费网站| 四虎网站免费av| 国产麻豆剧传媒精品视频| 四虎网站免费av| 91精品久久久久久久久不卡网站 | 精品人妻熟女在线视频| 日韩欧美爱爱视频免费观看| 欧美又色又爽又黄又粗暴| 蜜久久久91精品人妻| 久久久久中文字幕免费久久久久久| 天天色天天干天天舔| 亚洲日本精彩视频在线观看| 蜜臀av 麻豆av| 久久久久久久久久久免费网| 亚洲成人影院中文字幕| 91在线播放视频免费| 清纯唯美激情五月| 91中文字幕制服诱惑| 蜜臀av久久久久av蜜臀| 亚洲熟妇免费在线视频| 日韩av在线观看卡一卡| 91人妻人人做人碰人人| 久久久亚洲熟妇熟女ⅹx| 少妇惨叫久久久久久久| 婷婷在线综合观看视频| 日本高清不卡视频在线播放| 亚洲男人天堂久久| 偷偷夜夜精品一区二区三区蜜桃| 91porny国产九色| 欧美老熟妇重口另类xxx| 婷婷中文字幕色婷婷| 欧美日韩精品在线观看免费 | 久久亚洲精品无码系列客服| 国产一级av国产免费| 中文字幕在线视频亚洲| 国产成人av吴梦梦视频| 久久久久999蜜桃视频| 天天插天天日天天舔| 亚洲天堂黄色免费| 欧美中文字幕在线观看视频| 亚洲激情 欧美激情| www日本不卡一二三区| 日韩精品在线播放第三页| 久久久久久久精品综合| 五月婷婷激情四射综合网| 国产精品久久久久一区二区| 91在线精品国自产拍| 91高级会所在线播放| 久久国产经典三级av| 欧美日韩亚洲大片在线| 婷婷免费精品视频在线| 污视频在线观看91| 国产 欧美 日韩 视频| 天天插天天日天天舔| 国产欧美精品久久无广告| 免费av网站在线浏览| 在线观看色有小视频| 日韩视频在线观看一区二区| 五月激情爱爱婷婷| 日韩欧美国产成人一区| 亚洲狠狠婷婷综合久久a| 成人午夜激情福利片| 日本高清理论片中文字幕| 国产精品福利久久久久久久| 97色视频在线看视频| 青青青手机版视频在线看| 在线观看视频 你懂得| 日韩毛片亚洲av| 天天在线天天综合网色| 日韩少妇视频在线直播| 丰满的人妻一区七区| 国产麻豆一级美女精品| 国产一级淫片免费看久久| 99精品视频69v精品视频| 日韩av电影免费在线播放| 玖玖玖玖日在线视频| 亚洲欧美在线制服丝袜| 91久久国产综合久久91在线| 亚洲一线产区二线产区区| 国产成人无码AA精品一区| 久久午夜福利电影免费试看| 人妻精品无码一区二区三区| 亚洲视频另类专区| 99精品中文字幕在线视频| 久久行黑国产露脸精品| 香蕉在线蕉久在线| av青青草原在线观看| av日韩在线免费观看网站| 日韩毛片亚洲av| 日韩欧美不卡一区二区三区五区| 久久av一区中文字幕| 国产一区二区三区a级毛片| 91中日在线中文字幕| 50岁老熟女一区二区三区| 亚洲激情网在线播放| 亚洲 免费在线视频| 99久久国语露脸精彩对白| 久久亚洲精品无码系列客服 | 欧美一区二区三区成人免费看 | 美国av 在线播放| 国产成人精品久久久久久蜜臀 | 精品人妻久久久久中文字幕19禁| 在线观看日韩美视频一区| 欧美一区二区三区,| 68国产成人综合久久精品| 亚洲第一黄色天堂| 四虎国产精品久久免费精品| 777亚洲精品乱码久久| 欧美熟女人妻一区二区三区| 亚洲精品网站成人久久综合| 日韩中文字幕在线网站| 亚洲成a人片,77777| 日韩欧美在线视频第一页| 国产日韩欧美春色另类小说| 国产av一区二区三区天美| 亚洲人妻中文字幕一区二区| 欧美激情欧美情色成人在线| 日韩高清av一区| 国产精品久久欠久久al换脸综合| 68国产成人综合久久精品| 麻豆视传媒官网直接进入免费观看| 日本中文字幕久久免费精品| 欧美熟女人妻一区二区三区| 国产丝袜香蕉在线观看| 瑟瑟网站免费观看| 18禁成年av网站免费看| 国产成人精品视频免费网站| 熟女少妇视频一区二区在线| a级黄片在线免费观看| 最新亚洲国产中文字幕av| 精品国产一区二区三区制服| 污视频在线观看91| 色视频精品视频在线观看| 久久精品美国亚洲av伦理| 久久久久久夜夜夜精品国产| 99精品中文字幕在线视频| 日日夜夜夜视频伊人久久| 日本熟妇乱子伦a片在线观看 | 日韩a毛片视频免费看| 五月天色图婷婷亚洲| 日韩a毛片视频免费看| 一本久久久久久久18| 91麻豆精品91久久久久同性| 欧美日韩少妇一二三| 欧美精品一区二区在线视频| 国产精品成人av在线网站| 午夜精品久久婷婷蜜桃| 日本美女大学生一区二区三区| 91porny国产九色| 高清中文字幕乱码在线| 一级片一级片久久精品电影网电影| 久久精品人妻中文字幕一区| 国产麻豆剧传媒精品视频| 91亚洲国产成人久久精品app| 91中日在线中文字幕| 亚洲 欧美 日本 国产| 成年女人晚上碰免费视频| 99久久久99久久91熟女| 国产欧美一二三区视频| 久久久久久久夜精品精品| 久久视频这里都是精品 | 1024 国产高清の最新合集| 亚洲欧美丝袜精品久久直播| 国产精品久久欠久久al换脸综合| 92视频影院视频影院麻豆| 亚洲天堂av电影| 午夜精品福利小视频| 天天干天天草天天日天天天射伊人| 亚洲综合在线伊人| 安斋拉拉中文字幕在线| 亚洲天堂网av中文字幕| aaa久久久久久久久久网站| 美女差点操死在线观看| 亚洲综合在线伊人| 亚洲欧美av在线观看| 最美人妻一区二区三区| 欧美中文字幕久久久| 国产乱子伦视频免费| 日韩电影黄色免费| 亚洲激情 欧美激情| 麻豆在线视频看片免费| 新版天堂av资源在线| 67914熟女在线观看| 欧美日本一道本一区二区| 日韩厕所偷拍美女| 青娱乐国产视频盛| 欧美一区二区性久久久| 人妻熟女视频免费观看| 美国av 在线播放| 夜夜撸日日撸夜夜爽日日干| 午夜在线观看高清完整版| 国语黄色淫秽录像带| 午夜日韩麻豆福利| 亚洲成a人片7777| ass日本丰满熟妇pics| 一区二区 熟女人妻| 国产99成人自拍视频| 日韩av在线不卡网站| 日韩精品综合视频在线| 精品一区二区三区四区| 欧美人妻一区二区三区在线播放| 久久久久久一欧美国产| 日本av男优巧克力| 五月黄色激情视频| 午夜探花在线免费观看| 国产精品色呦呦视频免费看| 色图av亚洲综合| 久久成人网男人的天堂| 人妻精品无码一区二区三区| 日韩欧美三级一区二区在线观看| 日本熟妇乱子伦a片在线观看| 中文字幕婷婷网站| 清纯唯美激情亚洲综合另类| 精品久久精品久久久久| 97久久视频免费在线播放| 午夜三级中文字幕视频网址大全| 亚洲欧洲黄色图区| 国产有码av一区二区| 日韩中文字幕一区二区三区四区 | 久久视频在线免费播放| 天天操天天干天天妻| 老鸭子在线观看免费播放| 中文国产成人精品久久一| 精品久久一区电影亚洲| 亚洲天堂网av中文字幕| 中文字幕av最新在线| 国产成人免费精品视频大全 | 欧美人妻a∨中文字幕在线| 91人妻九色大屁股| 91超碰熟女在线97| 免费a级电影在线观看| 久久婷婷激情综合色综合俺也去| 亚洲天堂黄色在线| 亚洲五月婷婷视频| 久久综合久久综合大香蕉| 日本中文字幕一区二区在线视频| 久久亚洲 欧美 综合aⅴ| 色播网站在线播放| 欧美不卡高清一区二区三区| 欧美日韩综合国产精品| 97国产免费电影网| 久久久久久添逼视频| 天天做天天舔天天射| 亚洲乱精品中文字字幕| 九九re精品免费视频| 国产精品99久久久高清| 91国产手机视频在线观看| 日韩 美女 在线观看| 婷婷亚洲免费基地| 国产精品久久久久久吹吹潮| 97cao瑟瑟在线观看| 国产免费一级a男人的天堂| 大香蕉影视日本大香蕉97| youwu视频在线| 18禁成年av网站免费看| 一区二区三区乱码视频| 97精品久久人人爽人人爽| 亚洲精品熟女中文字幕| 欧美激情 另类视频 亚洲| 91沈先生探花极品在线| 99精品高清免费在线视频| 狠狠久久综合丁香777米奇| 日韩在线播放视频1区| 97人妻中文字幕精品视频| 久久久久久久久久性| laoyawo老鸭窝在线视频| 久久精品国产久精果冻传媒| 丰满熟女一区二区三区在线| 久久久96精品久久久| 青青草久久大香蕉| 亚洲成人日韩丶av| 亚洲视频欧美视频另类| 亚洲欧洲色图动图| 亚洲成人日韩丶av| 日韩欧美 国产精品| 丰满的人妻一区七区| 黑人粗大精品一区二区| 高清不卡av在线网| 日韩美女影院免费在线观看| 久久久久久久久久久免费网| 人妻人人揉人人澡人人| 国产日韩欧美人妻在线观看| 亚洲少妇黄色一级片| 久久久久久精品日韩| 国产精品亚洲精品成人| 性欧美另类sex极品free| 欧美一区二区三区激情啪啪啪| 少妇一区二区在线免费观看| 日韩精品免费91aa| 色综合久久久久久久久| 久久久精品国产亚洲av网深田| 成年人在线免费观看黄色片| 99re6热在线视频免费观看| 久久久久久人妻无码| 久热中文字幕在线精品| 国产欧美一二三区视频| 亚洲欧美自拍偷拍在线观看| 精品99国内中文字幕| 91人妻精品久久久久久久久| 久久男人精品男人天堂免费视频 | 肥臀熟女一区二区三区肥女人| 成人精品一区一区二区看片| 国产又粗又黄又大又长视频| 亚洲欧洲黄色图区| 五月综合缴情婷婷六月| av国产一区二区三区| 久久综合中文字幕一区二区三区 | 亚洲一区二区三二区厕所偷拍| 日韩美女在线视频一区| japanese 在线中文字幕| 久久精品一区二区三区人妻蜜桃| 综合激情五月天久久| 人人妻人人澡人人看| 国产精品99久久电影| 日韩a视频在线播放视频| 免费观看a级在线视频| 国产一级淫片免费看久久| 亚洲欧美在线制服丝袜| av传媒高清影院免费| 性欧美另类sex极品free| 中文字幕人妻一区二区在线看| 亚洲欧美日产人妻| 亚洲成人影院中文字幕| 人妻av不卡一区二区三区| 亚洲熟妇av日韩熟妇在线| 亚洲成年人电影天堂| 91天仙tv国产福利精品| 亚洲欧美日韩一区17c| 99国产在线 精品 视频| 天天摸天天舔天天爱| 欧美日韩人妻久久精品| 高清不卡av在线网| 亚洲熟妇av日韩熟妇在线| 色亚洲天堂色派对欧美色| 精品久久中文字幕系列| 国产又粗又黄又大又长视频| 欧美肥臀精品一区二区三区| av在线免费在线观看av| 亚洲天堂黄色免费| 亚洲五月婷婷视频| 色图av亚洲综合| 国产欧美一区二区二区精品| 国产又粗又硬又长又爽视频| 91偷伦一区二区三区蜜臀| ass日本丰满熟妇pics| 久久久久久少妇被弄高潮| 91麻豆精品91久久久久同性| 99精品高清免费在线视频| 一区二区三区四区中文字幕| 亚洲欧洲久久精品| 91偷拍老熟女露脸合集| 国产精品99精品一区二区三区∴| 欧美日韩久久久久久精品 | 久久视频在线免费播放| 草裙成人精品一区二区三区| 亚洲天堂性色综合| 国产一区二区久久久久久| 人妻少妇精品久久人妻| 日本中文国产字幕| 国产欧美日韩制服丝袜在线| 国产丝袜香蕉在线观看| 伊人久久中文字幕综合观看| 欧美中文字幕视频网| 国产 欧美 日韩 视频| 天天操天天干天天做天天射| 91在线观看视频,| 免费麻豆国产一区二区三区| 青青草青青操在线播放| 91国产视频网站在线观看| 久久视频黄色观看网站| 亚洲欧洲偷拍自拍| 午夜精品福利小视频| 久久久久久久久人妻精品| 欧美中文字幕久久久| 日韩视频在线观看一区二区| 国产一区二区免费五遮挡| 日韩av午夜精品| 亚洲av色图com| 国产自拍 偷拍 在线| 久久av资源男人站| 五月婷久久综合狠狠爱97| 大尺度av一区二区三区| aaa久久久久久久久久网站| 人人妻人人爱碰千| 亚洲女人老师毛茸茸| 日本美女大学生一区二区三区| 亚洲图色91东京热| 亚洲一线产区二线产区区| 97人人人欧美人人妻人人| 五月综合缴情婷婷六月| 另类h小视频在线观看| 国产a级片免费在线观看| 久久久久久久久久久久久熟女a∨| 亚洲欧洲偷拍自拍| 七十路熟女俱乐部| 亚洲精品,欧美日韩| 久久草免费在线视频| 欧美va亚洲va精品| 日韩高清av一区| 国产精品色呦呦视频免费看| 日本最新中文字幕| 麻豆精品一区在线免费观看| av在线免费在线观看av| 国产99成人自拍视频| 日韩乱妇乱女熟妇熟女网红| 人人妻人人澡人人爽dv| 欧美日韩久久久久久精品| 国产成AV人片在线观看天堂无码| 中文字幕理伦福利片| 久久久亚洲熟妇熟女ⅹx| 国产成人无码AA精品一区 | 久久这里只有精品久| 中文字幕 日本伊人| 制服巨乳人妻在线| 97人妻中文字幕精品视频| 亚洲激情熟女色图| 日韩中文字幕有码人妻在线| 久久 99 精品视频| 在线免费av大香蕉| 先锋资源站中文字幕| 久久免费视频精彩视频| 亚洲成人久久久久| 日韩a大片在线观看| 中文字幕一区二区不卡顿| 91免费版下载成人| 精品蜜臀久久久久抄底| 最新精品成人在线| 亚洲图色91东京热| 日韩在线播放视频1区| 99国产在线 精品 视频| 91在线观看视频,| 欧美精品一区二区在线视频| 五月综合缴情婷婷六月| www.色av成人| 久久久精品99国产国产精| 久久人妻少妇嫩草av蜜桃动态图| 少妇人妻给我内射视频| 欧美熟妇人妻视频在线| 91啪啪啪内射网站| 五月天丁香婷婷国产| 一区二区三区四区中文字幕| 日韩在线中文字幕不卡| 日韩不卡一级成人免费视频| 天天做天天舔天天射| 亚洲av微乳在线| 精品人妻熟女在线视频| av青青草原在线观看| 亚洲精品久久第一页| 自拍偷拍 亚洲 在线| 亚洲av网站女性向在线观看| 日韩成人av在线电影观看| 91亚洲国产成人久久精品app| 国产高潮好爽受不了了视频| 风间由美交换夫中文字幕| 免费麻豆国产一区二区三区| 天天日天天日天天日天天日| 中文字幕亚洲中文字幕| 韩国女团午夜大尺度福利| 一区二区 熟女人妻| 日韩久久久三级电影| 亚洲av综合久久伊人| 大尺度av一区二区三区| 亚洲欧美日韩一区二区三区不卡| 久久精品美国亚洲av伦理 | 一级片一级片久久精品电影网电影 | 日韩av在线点播| 亚洲国产欧美日本视频| 国产成人无码AA精品一区| 18禁成年av网站免费看| 中文字幕精品久久久人妻| 亚洲欧美日韩一二三四五六七区| 日韩乱妇乱女熟妇熟女网红| 亚洲成人av久久久久| 国产一区二区三区女同| 日韩有码在线免费观看视频| 亚洲欧美日韩国产另类专区| 91偷拍老熟女露脸合集| 国产高潮好爽受不了了视频| 日韩精品久久久久久久软件| 国产黄色主播网址大全在线播放| 牛牛成人手机视频在线| 免费a级电影在线观看| wwxxx中文字幕| 日韩欧美久久免费观看| 亚洲aⅴ欧美综合一区二区三区 | 欧美亚洲av日韩综合一区| 亚洲狠狠婷婷综合久久a| 18禁成年av网站免费看| 在线观看日韩中文| 久久视频这里都是精品| 国产精品久久久久久久久久69| 在线免费观看日韩精品视频| 欧美精品人妻丝袜一区| 777亚洲精品乱码久久| 蜜桃视频在线观看一区精品| 亚洲熟妇av熟妇在线| 厕所偷拍视频一区二区三区| 亚洲情欲大片在线观看| 蜜桃av 1区二区| 久久男人精品男人天堂免费视频| 国产成人精品久久久女| 亚洲国模私拍视频| 成人黄色国产网站在线观看| 亚洲.欧美.日韩.| 97久久碰人妻一区二区三区四| 1024 国产高清の最新合集| 亚洲欧美日韩国产精品综合| 中文字幕av最新在线| 亚洲激情视频在线视频| 欧美不卡高清一区二区三区 | 乱丰满的岳伦在线观看| 日本av都有哪些系列| 日本a级2020在线观看| 日本中文国产字幕| 97久久视频免费在线播放| 日韩一区二区三区乱码| 99爱99久久久久久久久久| 精品久久久久久亚洲国产999| 日韩午夜激情福利免费| 人妻精品少妇嫩草麻豆| 天天干天天插天天操天天日| 国产精品久久久久久久漫画| 国产91久久精品一区二区老| 欧美中文字幕久久久| 成人午夜激情福利片| 免费av网站在线浏览| 88av亚洲精品日韩一区二区| 少妇高潮喷水久久久久久桃花| 亚洲天堂性色综合| 国产精品久久久久久久久久69| 精品aa级中文字幕人妻| 人妻中出视频一区二区| 日本熟妇乱子伦a片在线观看 | 日本vs欧美一区二区三区| 久久国产精品人妻酒店| 人人狠狠久久综合网| 中文字幕+人妻熟女| 香蕉久久久久久久久久久久女| 91综合精品国产丝袜长腿| 丝袜日韩中文字幕| 日韩成人av影视在线观看| 热香蕉和冷香蕉功效一样吗| 国产精品久久久久成人片| 91久久精品日日躁夜夜躁| 国产成人一区二区三区在线视频| 蜜桃一区二区三区大香蕉| 999热这里只有精品在线| 精品美女1区2区3区| 亚洲久久亚女同性| 国产日韩欧美春色另类小说| 亚洲成a人片7777| 亚洲午夜电影久久久| 在线观看色有小视频| 99久久窝窝午夜影视| 久久久久999蜜桃视频| av熟妇翔田千里俱乐部| 免费色婷婷在线视频| 日韩av在线不卡网站| 91沈先生探花极品在线| 在线免费观看日韩精品视频| 欧美一区二区性久久久| 91精品久久久久久久久不卡网站| 篠田优中文字幕在线播| 日韩美女影院免费在线观看| 久久精品视频在线国国| 日韩一级黄色大片免费观看 | 美国av 在线播放| 国产欧美一二三区视频| 日韩欧美久久免费观看| 婷婷在线综合观看视频| 久久精品琪琪男人的天堂| 少妇人妻成人在线| 91porny国产九色| 99re6热在线视频免费观看| 午夜在线观看高清完整版| 久久国产精品——国产精品| 欧美一区二区三区成人免费看| 日本av男优巧克力| 日韩av电影在线观看的| 欧美日韩少妇一二三| 中文字幕av最新在线| 青青青在线视频自拍| 亚洲国产欧美激情图区| 久久久久久久久人妻精品| 亚洲成人av久久久久| 欧美人妻系列,中文字幕| 日韩a毛片视频免费看| 日韩av在线专区| 日韩av在线点播| 国产 另类 在线 欧美日韩| 国产五月天在线观看视频| 日韩成人免费电影三区| 成人人妻视频一区二区| 热久久免费频精品18| 国产精品久久久久国产| 日韩国产精品电影网| 99热精品国产影视久久久影院| 日韩在线啊啊啊的视频| 国产日韩一区二区三区啪啪啪| 免费观看a级在线视频| 91制片在线观看视频| 88av亚洲精品日韩一区二区| 人妻中出视频一区二区| 五月天色婷婷av在线| 亚洲欧洲色图动图| 美国av 在线播放| 91人妻人人澡.人人精品| 男人亚洲天堂2018| 91国产视频网站在线观看| 亚洲欧美日韩一区二区三区不卡| 精品日韩偷拍欧美另类| 草裙成人精品一区二区三区| 人妻有码中文字幕中文| 99精品视频69v精品视频| 亚洲av微乳在线| 91在线国产九色porny| 亚洲欧美日韩国产精品综合| 97cao瑟瑟在线观看| av在线免费观看网站大全| 久久久久久久夜精品精品| 日本美女大学生一区二区三区| 人人妻人人澡人人爽国产一区| 久久久免费精品少妇| 2020中文字幕在线看电影| 人妻一区二区中文字幕在线| 人妻精品一区二区在线播放| 日韩欧美一级在线视频| 91成人国产精品视频| 国产精品久久久久久久漫画| 亚洲av狠狠地操你| 欧美日韩亚洲国产ay| 日韩久久久三级电影| 蜜久久久91精品人妻| 久久行黑国产露脸精品| 精品乱码一区二区三区四区| 亚洲情欲大片在线观看| aaa久久久久久久久久网站| 牛牛成人手机视频在线| av日韩在线免费观看网站| 亚洲成a人片7777| 亚洲制服欧美丝袜| 亚洲最大成人网一区二区三区| 色婷婷综合免费在线视频| 91人妻人人妻人人爽| 国产精品久久欠久久al换脸综合| 国产欧美精品久久无广告| 亚洲人的午夜影院| 18久久久免费视频| 国产精品福利久久久久久久| 欧美一区二区三日韩| 日韩成人av影视在线观看| 日韩中文字幕在线综合网| 成人免费av在线网站| 久久草免费在线视频| 亚洲欧美av在线观看| 国语黄色淫秽录像带| 高清一区二区日韩视频精品| 欧美激情欧美情色成人在线| 最新精品成人在线| 亚洲第一黄色天堂| 91国产视频网站在线观看| 久久久精品欧美一区二区国产| 中文字幕亚洲资源天堂| 蜜臀av 麻豆av| 国产成人精品久久综合| 黑人粗大精品一区二区| 91高级会所在线播放| 男人的天堂久久精平| 99久久999久久久精品综合| 色哟哟视频在线观看国产| 欧美一区二区精品人妻免费视频 | 欧美中文字幕在线一区| av在线免费在线观看av| 国产精品久久欠久久al换脸综合| 激情五月天狠婷婷| 天天干天天草天天日天天天射伊人| 久久精品国产91久久麻豆自制| 三级亚洲天堂亚洲天堂| 日本熟妇乱子伦a片在线观看| 午夜三级中文字幕视频网址大全| 日韩a视频在线播放视频| 欧美日本一道本一区二区| 日本少妇人妻xxxx| 国产欧美日韩制服丝袜在线| 久久久久国产麻豆婷婷| 97色视频在线看视频| 日韩欧美国产成人一区| 国产日本精品久久久久| 国产精品综合手机在线| 久久久久女优免费视频| 一区二区三区四区中文字幕| 久久蜜臀精品一区二区| 亚洲欧美日韩国产精品综合| 国产欧美日韩精品专区黑人| 亚洲制服高清中文字幕| 天堂av最新资源在线| 日韩久久久三级电影| 色播五月激情四射| 激情亚洲一区蜜桃在线| 午夜精品福利小视频| 人妻精品少妇嫩草麻豆| 国产熟女高潮av77777| 一区二区三区内射美女毛片| 日韩欧美一级在线视频| 麻豆免费国产福利免费国产福利| 99久久国语露脸精彩对白| 国产精品首页在线播放| 国产亚洲av免费一区二区| 午夜精品久久久久久久久二区三区| 青青草久久大香蕉| 天天在线天天综合网色| 成年女人晚上碰免费视频| 久久综合久久综合久久色| 亚洲成年人电影天堂| 日本中文字幕久久免费精品 | 久久久久女优免费视频| 激情四射五月开心六月婷婷| 国产精品男人的天堂999| 99热精品国产影视久久久影院| 精品日韩偷拍欧美另类| 91国偷自产一区二区三区老熟女| 色综合久久999| 亚洲欧美日韩一区17c| 亚洲伊人网在线观看| 亚洲激情国产一区| 91在线精品国自产拍| 欧美精品一区二区在线视频| 精品乱码一区二区三区四区| 日韩人妻插舔激情午夜| 99re热在线精品视频9| 国产探花在线播放精品| 精品97人妻无码中文永久| 另类h小视频在线观看| 91中文字幕制服诱惑| 国产精品一区二区亚瑟不卡| 伊人久久热青青草| 国产日韩欧美人妻在线观看 | 91porny国产九色| 日本av都有哪些系列| 玖玖资源站中文字幕一区二区| w疯狂的少妇2做爰韩国| 日韩卡一卡二卡三卡四卡五| 91国产手机视频在线观看| 欧美中文字幕视频网| 2020日韩中文字幕| 国产成人精品久久综合| 亚洲精品,欧美日韩| 中文字幕理伦福利片| 国产激情综合视频在线观看| 午夜日韩麻豆福利| 97精品久久人人爽人人爽| 蜜桃黄色av网站免费播放| 精品美女1区2区3区| 色婷婷一区二区三区四区五| 亚洲日本精彩视频在线观看| 国产精品男人的天堂999| 久久久久久久免费女人体| 精品国产久久久久99| 欧美激情电影在线观看不卡| 久久人妻久久人妻一区| 亚洲欧美日韩一区17c| 青青青手机版视频在线看| 日韩av在线不卡网站| 欧美熟妇人妻视频在线| 青青青在线视频自拍| 日韩欧美国产成人一区| 日韩在线观看免费全集网站| 蜜臀久久99精品久久久久久久久| 免费精品国产日韩热久久| 99精品高清视频一区二区| 一区二区三区四区中文字幕| 五月婷婷激情狠狠| 久久综合中文字幕一区二区三区 | 一区二区三区精品乱子伦……| 欧美一级黄片视频看看| 人妻少妇精品久久人妻| 亚洲国产一成人久久精品| 中文字幕日韩天堂| 亚洲 欧美 日本 国产| 欧美日韩精品综合在线一区二区| 国产精品久久久久国产| 五月婷婷蜜臀性色av| 福利一福利二福利三| 亚洲中文字幕精品高清| 日韩欧美一级在线视频| 青娱乐国产视频盛| 99久久精品国产777| 68国产成人综合久久精品| 97精品国产自在在线观看蜜臀 | 亚洲人妻中文字幕一区二区| 亚洲欧美自拍偷拍在线观看| 亚洲久久亚女同性| 人妻精品一区二区在线播放| 综合激情伊人久久| 日韩av电影com| 国产成AV人片在线观看天堂无码 | 色哟哟视频在线观看国产| 久久传奇网站一区三区视频| 一区二区三区精品乱子伦……| 精品国产丝袜久久久一区二区 | 日韩免费美女电影| 又爽又黄的免费视频91| 人人妻人人澡人人爽dv| 成人午夜激情福利片| 初撮日本五十路人妻| 老鸭子在线观看免费播放| 在线国产小视频麻豆| 亚洲激情有码一区二区| 97国产人妻换人妻| 亚洲精品熟女中文字幕| 日韩美女影院免费在线观看| 欧美人妻激情中文视频| 在线人妻国产精品| 美女在线观看亚洲一区| 亚洲国产精品成人精品软件| 久久久精品欧美一区二区国产| 日韩欧美颜色渔网| 激情亚洲一区蜜桃在线| 五月天色婷婷av在线| 午夜精品久久婷婷蜜桃| 中文字幕熟女人妻在线网页| 蜜桃精品一区二区三区在| 久久国产精品色av免费看| 久久婷婷亚洲中文一区二区 | 2020中文字幕在线看电影| 99精品视频69v精品视频| 成人黄色国产网站在线观看| 日韩中文字幕视频在线播放| 亚洲国产一成人久久精品| 国产成人无码AA精品一区 | 亚洲欧美日韩中出| 亚洲欧洲av在线| 真实玩弄白嫩丰满人妻少妇三级| 中文字幕熟女人妻在线网页| a级黄片在线免费观看| 亚洲中文字幕精品高清| 国产亚洲天堂sss| 久久久免费精品少妇| 五月天丁花香婷婷| 久久草免费在线视频| 91国偷自产一区二区三区偷拍 | 91成人国产精品视频| 又粗又猛又爽黄老大爷视频| 福利日韩精品中文字幕专区| 人妻日韩精品在线观看视频| 中文字幕av最新资源| 狠狠干中文字幕97视频| 久久久久久久免费女人体| 亚洲男人五月天堂| 亚洲国模私拍视频| 丰满少妇精品一区二区| 国产成AV人片在线观看天堂无码| 久热中文字幕在线精品| 玖玖资源站中文字幕一区二区| 99精品高清免费在线视频| 日韩欧美在线视频第一页| 国产精品久久久久国产| 91精品乱码久久久久久| 老鸭子在线观看免费播放| 精品蜜臀久久久久抄底| 国产成人精品视频免费网站| 丰满大屁股熟妇猛交xxx| 91人妻人人澡.人人精品| 久久久久国产精品免费| 日韩av 自拍偷拍| 亚洲欧美日韩一区二区三区不卡| 久久视频免费有精品| 五月激情爱爱婷婷| 日本中文国产字幕| 久久久久女优免费视频| 中文字幕婷婷网站| 精品人妻一区二区三区人妻视频 | 久久免费视频观看99| 亚洲 免费在线视频| 亚洲 免费在线视频| 中文字幕av最新在线| 人妻夜夜爽天天爽麻豆| 久久久精品蜜桃在线| 青青青青青欧美在线视频观看| 99精品视频在线看17| 日韩a毛片视频免费看| 日本亚洲天堂久久| 久久国产经典三级av| 日韩亚洲图色在线| 一区二区三区精品乱子伦……| 91久久国产综合久久91在线| 青青草国产福利视频| 国产99不卡免费在线观看| 欧美熟女vides| 50岁老熟女一区二区三区| 国产91久久久久久久| 超碰97在线观看国产| 午夜探花在线免费观看| 日韩av在线精品观看| 美日韩美女三级电影| 国产精品亚洲精品成人 | 亚洲精品熟女中文字幕| 成人精品一区一区二区看片| youwu视频在线| 亚洲av综合久久伊人| 99热这里只有精品网| 精品国产乱码久久久久夜深| 国产乱人妻精品久久久| 亚洲一线产区二线产区区| 日韩乱妇乱女熟妇熟女网红| 亚洲国产精品国自产拍av麻豆| 精品久久久久久18免费网站| 中文字幕在线视频亚洲|