青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見(jiàn)諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

正則表達(dá)式介紹及其在EmEditor的應(yīng)用

應(yīng)用概述: 提供與預(yù)期的搜索結(jié)果匹配的確切文本來(lái)進(jìn)行字符串的搜索和替換操作, 這種技術(shù)不僅僅用于開發(fā)領(lǐng)域, 更被集成到一些常見(jiàn)的文本擴(kuò)展編輯器, UltraEdit, Emeditor. 歷史上第一個(gè)實(shí)用應(yīng)用程序是Unix 中的qed 編輯器。

舉一個(gè)簡(jiǎn)單的類比: 我們對(duì)DOS中的通配符"*""?"應(yīng)該很熟悉, 如命令"dir *.exe" 將列出所有后綴名為exe的文件名. 正則表達(dá)式提供的方法與其類似, 而且遠(yuǎn)比通配符強(qiáng)大的多.

從某種意義上說(shuō), 正則表達(dá)式是一種語(yǔ)言, 通過(guò)及其簡(jiǎn)短的一行代碼即可以高效, 精確的描述要匹配的復(fù)雜文本, 當(dāng)然, 它最大的優(yōu)點(diǎn)也是他最大的缺點(diǎn): 語(yǔ)法復(fù)雜, 創(chuàng)建困難. (熟悉之后就可以忽略后半句了 :p)

主要應(yīng)用:

  • 數(shù)據(jù)驗(yàn)證; 這是正則表達(dá)式在開發(fā)中最常見(jiàn)的應(yīng)用, 通過(guò)測(cè)試字符串內(nèi)的模式。來(lái)驗(yàn)證輸入的字符串是否為郵政編碼, 電話號(hào)碼, 電子郵件地址, 信用卡號(hào)碼等等。
  • 搜索和替換文本; 用正則表達(dá)式來(lái)搜索文檔中的特定文本塊, 根據(jù)需要用其他指定的文本塊進(jìn)行替換。這也是文本編輯中的一個(gè)常見(jiàn)應(yīng)用, 如將網(wǎng)頁(yè)中的HTML代碼轉(zhuǎn)化為UBB代碼.


既然發(fā)在『軟件使用』板, 正則表達(dá)式的開發(fā)中的應(yīng)用就不介紹了, 以下僅以EmEditor中的正則表達(dá)式來(lái)作介紹:

1.
啟用正則表達(dá)式

菜單: Search - Find (Replace) - 選中 Use Regular Expressions

2. Emeditor
正則語(yǔ)法

正則表達(dá)式是普通字符和元字符組合的一種模式. 它的結(jié)構(gòu)與算術(shù)表達(dá)式的結(jié)構(gòu)類似, 各種元字符和運(yùn)算符可以將小的表達(dá)式組合起來(lái),創(chuàng)建大的表達(dá)式。通過(guò)在一對(duì)分隔符之間放置表達(dá)式模式的各種組件,就可以構(gòu)建正則表達(dá)式。

2.1
普通字符

普通字符是指除了 ".", "*", "?", "+", "(", ")", "{", "}", "[", "]", "^", "$" "\" 這些特殊字符之外的所有其他字符. 而這些特殊字符也可以通過(guò)前面加上"\"前綴而變?yōu)槠胀ㄗ址?span lang="EN-US">. 比如, 搜索"CCF"即為在文本中匹配所有的"CCF"字符串, 搜索"\[CCF\]"則是在文本中匹配所有的"[CCF]"字符串.
簡(jiǎn)而言之, 普通字符即為只匹配自身的字符.


2.2
元字符

元字符不匹配其自身,它用特殊方式來(lái)解析從而實(shí)現(xiàn)更多的邏輯功能。正則表達(dá)式通過(guò)元字符在模式中包含選擇和循環(huán)


2.2.1
特殊字符

  • . 匹配除換行符 \n 之外的任何單個(gè)字符。
  • ( ) 分組捕獲(子表達(dá)式)的開始和結(jié)束。可以捕獲子表達(dá)式以供以后使用。
  • [ ] 中括號(hào)表達(dá)式的開始。

中括號(hào)表達(dá)式是在方括號(hào)內(nèi)包含一個(gè)或多個(gè)字符構(gòu)成的列表的表達(dá)式。普通字符在中括號(hào)內(nèi)表示本身,大多數(shù)特殊字符在中括號(hào)表達(dá)式內(nèi)出現(xiàn)時(shí)失去它們的意義。除了轉(zhuǎn)義字符'\', (要包含'\', 需要使用'\\') : 正則表達(dá)式 No [1234] 匹配 No 1, No 2, No 3 No 4.

如果想在中括號(hào)中使用一個(gè)范圍作為列表來(lái)匹配字符,可以用連字符 '-' 將范圍中的開始字符和結(jié)束字符分開。單個(gè)字符的字符值確定范圍內(nèi)的相對(duì)順序。如: 正則表達(dá)式 No [1-4] = No [1234]
注意 1. 開始值的Unicode值必須在結(jié)束值Unicode值的前面。
注意 2. [\-]匹配連字符'-', 放在中括號(hào)列表的開始或結(jié)尾也可起到同樣的效果, [-c-f] 匹配 c f 的字符和連字符

如果需要匹配不屬于列表或范圍內(nèi)的任何字符,可以在列表開頭加上'^'前綴。如: 正則表達(dá)式 No [^1-4] 匹配 No 5 和更大的編號(hào).

中括號(hào)表達(dá)式還可進(jìn)行組合, [A-Za-z0-9] 匹配A-Z, a-z, 0-9 的字符

  • \ 將下一字符標(biāo)記為特殊字符、文本、反向引用或八進(jìn)制轉(zhuǎn)義符。例如,

字符 n 匹配字符 n
\n
匹配換行符
序列 \\ 匹配 \
序列 \( 匹配 (

  • | 替換字符, 對(duì)|左右的兩個(gè)項(xiàng)分別匹配進(jìn)行選擇。或者說(shuō), 就是邏輯的OR的概念
  • { } 標(biāo)記限定符表達(dá)式的開始。

(數(shù)量)限定字符
限定字符能夠指定正則表達(dá)式的某個(gè)部分必須出現(xiàn)的次數(shù)

    • * 零次或多次匹配前面的字符或子表達(dá)式。如,c*f 可以匹配 f ccf* = {0,}
    • + 一次或多次匹配前面的字符或子表達(dá)式。如,c+f 可以匹配 cf ccf,但不匹配 f+ = {1,}
    • ? 零次或一次匹配前面的字符或子表達(dá)式。如,cc?f 可以匹配 cf ccf? = {0,1}
    • {n} n 是非負(fù)整數(shù)。正好匹配 n 次。如,c{2}f 可以匹配 ccf
    • {n,} n 是非負(fù)整數(shù)。至少匹配 n 次。如,c{2,}f 不匹配 cf,而可以匹配 ccccccfc{1,} = c+c{0,} = c*
    • {n,m} m n 是非負(fù)整數(shù),其中 n <= m。至少匹配 n 次,至多匹配 m 次。如,c{1,3} 可以匹配 ccf 中的ccc{0,1} 等效于 c?


2.2.2
控制字符

  • \a Bell 字符。= 0x07
  • \f 換頁(yè)符匹配。= 0x0C
  • \n 換行符匹配。= 0x0A
  • \r 匹配一個(gè)回車符。= 0x0D
  • \t 制表符匹配。= 0x09
  • \v 垂直制表符匹配。= 0x0B
  • \e ASCII 換碼字符。= 0x1B
  • \0dd 八進(jìn)制換碼字符, dd代表八進(jìn)制數(shù)字。
  • \xXXXX\x{XXXX} 4位十六進(jìn)制Unicode字符, XXXX代表十六進(jìn)制數(shù)字。
  • \cZ Z-'@' 控制字符Control-Z, Z為大于等與"@"ASCII字符


2.2.3
換碼字符

  • \w 任一單詞字符, A-Z, a-z, 0-9, _, \w\w\w可以匹配 U_4 但不匹配 %^e
  • \W 任一非單詞字符, \W\W 可以匹配 *& 但不匹配 7#
  • \s 任一空白字符,包括空格、制表符、換頁(yè)符、回車符和垂直制表符。= [ \f\n\r\t\v]
  • \S 任一非空白字符. = [^ \f\n\r\t\v]
  • \d 0-9的任一數(shù)字字符, \d\d可以匹配 54 但不匹配 a4
  • \D 任一非數(shù)字字符. \D\D可以匹配 a4 但不匹配 54
  • \l a-z 之間的任一小寫字符, \l\l\l可以匹配 ccf 但不匹配 ccF
  • \L 任一非小寫字符, \L\L\L可以匹配 CCF 但不匹配 cCF
  • \u a-z 之間的任一大寫字符, \u\u\u可以匹配 CCF 但不匹配 CCf
  • \U 任一非大寫字符, \U\U\U可以匹配 ccf 但不匹配 ccF
  • \C 任一字符, = '.'
  • \Q 前置引號(hào)符, 其后的任意字符均被認(rèn)為普通字符直至出現(xiàn)后置引號(hào)符\E. 同時(shí)匹配單引號(hào)和雙引號(hào)
  • \E 后置引號(hào)符


2.2.4
轉(zhuǎn)義字符串

表示為[:classname:], "[[:space:]]"表示所有的空格字符

  • alnum 任一單詞字符和數(shù)字字符. = [\w\d]
  • alpha 任何一個(gè)單詞字符, A-Z, a-z, 0-9
  • blank 任一空白字符,包括空格、制表符、換頁(yè)符、回車符和垂直制表符。= [ \f\n\r\t\v] = \s
  • cntrl 任一控制字符.
  • digit 0-9的任一數(shù)字字符, = \d
  • graph 任一圖形字符.
  • lower a-z 之間的任一小寫字符 =\l
  • print 任一可打印字符 = '.' = \C
  • punct 任一標(biāo)點(diǎn)符號(hào)
  • space 任一空格字符
  • upper a-z 之間的任一大寫字符 = \u
  • xdigit 4位十六進(jìn)制Unicode字符, = \xXXXX
  • word 任何一個(gè)單詞字符, A-Z, a-z, 0-9, _, = \w
  • unicode 任何一個(gè)ASCII值大于255的字符


2.2.5
定位字符

定位字符可以把正則表達(dá)式固定到行首或行尾。在Perl正則全集中還能使正則表達(dá)式出現(xiàn)在一個(gè)單詞內(nèi)、在一個(gè)單詞的開頭或者一個(gè)單詞的結(jié)尾, emeditor只是一個(gè)子集, 不包含這個(gè)功能。

  • ^ 匹配輸入字符串開始的位置。如果設(shè)置customize中的"regular expressions can match new line characters",那么 ^ 還匹配 \n \r 后面的位置。 但在中括號(hào)表達(dá)式中使用的情況除外,在那種情況下它對(duì)字符集求反。
  • $ 匹配輸入字符串結(jié)尾的位置。如果設(shè)置customize中的"regular expressions can match new line characters",那么 $ 還匹配 \n \r 前面的位置。


3.
分組捕獲和替換

分組通常用來(lái)捕獲特定模式的一組文本, 并用與之后的替換操作, 這也就是將分組和替換結(jié)合起來(lái)講解的原因.
最基本的分組構(gòu)造方式就是(),在左右括號(hào)中括起來(lái)的部分,就是一個(gè)分組;在正則全集中還有如(?<name> )的命名分組方式,這種方式組合了模式在就是對(duì)分組的部分進(jìn)行了命名,這樣就可以通過(guò)該組的命名來(lái)獲取信息, 但這種方式在emeditor中不被支持. 以下分別來(lái)介紹各種不同的分組:

  • ()組捕獲. 這種分組對(duì)模式在括號(hào)內(nèi)所捕獲的字符進(jìn)行組合, 并且每個(gè)分組捕獲的匹配結(jié)果都將保存為一個(gè)實(shí)體以備其后的操作所引用. 甚至在正則全集中還可對(duì)前面的分組進(jìn)行反向引用(這是題外話, emeditor不支持). 舉例說(shuō)明:
    源文本:

代碼:

site status- online members: 65, online guests: 12

使用正則表達(dá)式:

代碼:

(members|guests): \d+

括號(hào)中有兩個(gè)可能的匹配: members guests, 只需要匹配其中任意一個(gè); 其后是冒號(hào)和一個(gè)空格, 最后匹配至少一個(gè)數(shù)字. 匹配模式結(jié)果如下:

代碼:

members: 65

guests: 12

其中membersguests在兩次匹配中被捕捉, 可以在隨后的操作中引用.

  • (?:)非組捕獲. 這種分組僅僅對(duì)模式在括號(hào)內(nèi)所匹配的字符進(jìn)行組合, 模式所匹配的字符將不會(huì)作為一個(gè)組來(lái)捕獲. 雖然他也同樣成為最終的匹配結(jié)果的一部分, 但無(wú)法為其后的操作所引用. 同樣以上例繼續(xù):
    使用正則表達(dá)式:

代碼:

(?:members|guests): \d+

匹配模式結(jié)果同樣為:

代碼:

members: 65

guests: 12

但是membersguests僅僅在兩次匹配中被分組, 并不被捕獲, 也不可以在隨后的操作中引用.
使用非捕獲組有其原因和場(chǎng)合. 其一, 從效率上說(shuō), 捕獲一個(gè)分組需要消耗額外的資源和處理時(shí)間, 所以不應(yīng)該捕獲不需要使用的數(shù)據(jù). 其二, 對(duì)模式中有多個(gè)捕獲組的情況, 對(duì)不需要處理的分組進(jìn)行捕獲只會(huì)對(duì)分組信息造成混亂. 其三, 避免不需要貪婪匹配的場(chǎng)合發(fā)生貪婪匹配, 貪婪匹配是正則引擎的一個(gè)重要特性, 要說(shuō)清楚其機(jī)理可能還需要另外開一個(gè)專題了. 對(duì)這一點(diǎn), 還以上例說(shuō)明一下:
使用不帶分組的正則表達(dá)式:

代碼:

members|guests: \d+

匹配模式為:

代碼:

members

guests: 12

這個(gè)正則表達(dá)式的問(wèn)題在于, 他匹配的是"members" "guests: \d+", 這是模式中貪婪"消費(fèi)"字符引起的. 而通過(guò)增加括號(hào)進(jìn)行分組, 使正則引擎將兩個(gè)匹配選項(xiàng)作為一個(gè)組處理, 從而正確匹配其中的一個(gè)匹配項(xiàng).

  • (?=)正聲明組, 非捕獲. 此分組中的模式必須出現(xiàn)在聲明的右側(cè), 并且, 這個(gè)模式不構(gòu)成匹配結(jié)果的一部分. 舉例:
    源文本:

代碼:

site status- online members: 65, online guests: 12

使用正則表達(dá)式:

代碼:

\S+(?=\s\d+)

此模式中規(guī)定了\s\d+必須出現(xiàn)在\S+聲明的右側(cè). 也就是說(shuō), 在至少一個(gè)非空格字符(聲明)的右側(cè)必須出現(xiàn)一個(gè)空格字符和至少一個(gè)數(shù)字, 而且只有這個(gè)聲明構(gòu)成匹配結(jié)果. 匹配模式結(jié)果如下:

代碼:

members:

guests:

這兩次匹配中不被捕捉.

  • (?!)負(fù)聲明組, 非捕獲. 此分組中的模式不得出現(xiàn)在聲明的右側(cè), 并且, 這個(gè)模式不構(gòu)成匹配結(jié)果的一部分. 還是用上面的例子:
    使用正則表達(dá)式:

代碼:

\d{2}(?!,)

此模式中規(guī)定了","不得出現(xiàn)在\d{2}聲明的右側(cè). 也就是說(shuō), 在連續(xù)兩個(gè)數(shù)字(聲明)的右側(cè)不得出現(xiàn)逗號(hào)才能被匹配. 匹配模式結(jié)果如下:

代碼:

12

這兩次匹配中不被捕捉.


嚴(yán)格的說(shuō), 后面兩個(gè)分組不能稱之為分組, 他們只是模式聲明, 他們不能成為匹配結(jié)果, 也不能被捕獲. 在正則全集中, 還有反向聲明分組(?<=)(?<!)和非回溯分組(?>), emeditor中不被支持.

說(shuō)到括號(hào)的功能, 本來(lái)正則中的一個(gè)重要指令-條件指令和分組內(nèi)聯(lián)設(shè)定是不得不說(shuō)的, 可惜的是... emeditor也同樣不支持~~~~

在前面的例子中一直提到匹配之后的操作, 而這個(gè)進(jìn)一步的操作最常見(jiàn)的就是替換. 先繼續(xù)上面的例子:
源文本:

代碼:

site status- online members: 65, online guests: 12

使用搜索正則表達(dá)式:

代碼:

(members|guests)

和替換正則表達(dá)式:

代碼:

ccf-\1

匹配模式結(jié)果如下:

代碼:

members

guests

替換后的文本為:

代碼:

site status- online ccf-members: 65, online ccf-guests: 12

其中membersguests在兩次匹配中被捕捉, 在隨后被引用, 并添加ccf-前綴后替換源文本中的匹配字符.
在匹配模式中的分組匹配結(jié)果將按前后順序被正則引擎分別賦予內(nèi)部組號(hào), 在替換操作中就可以用\加上這個(gè)組號(hào)來(lái)引用相應(yīng)的匹配結(jié)果. 繼續(xù)上例:
使用搜索正則表達(dá)式:

代碼:

(members|guests): (\d{2})

和替換正則表達(dá)式:

代碼:

ccf-\1 = \2

匹配模式結(jié)果如下:

代碼:

members: 65

guests: 12

替換后的文本為:

代碼:

site status- online ccf-members = 65, online ccf-guests = 12


emeditor的正則子集中增加了一個(gè)特殊的引用: \0 , \0 將引用上次的匹配結(jié)果, 繼續(xù)把:
使用搜索正則表達(dá)式:

代碼:

\d{2}

和替換正則表達(dá)式:

代碼:

*\0*

匹配模式結(jié)果如下:

代碼:

65

12

替換后的文本為:

代碼:

site status- online ccf-members: *65*, online ccf-guests: *12*


作為一個(gè)編輯軟件, emeditor的正則子集中增加了一些替換修飾符:

  • \U 大寫修飾. 將其后的所有的字符替換為大寫
  • \L 小寫修飾. 將其后的所有的字符替換為小寫
  • \H 半角修飾. 將其后的所有的字符替換為半角字符. 寫到這里, 不得不稱許一下emeditor對(duì)中文的良好支持, 這個(gè)\H至少我是很常用的, 不喜歡看到文本里面都是些123abc之類的全角字符...
  • \F 全角修飾. 將其后的所有的字符替換為全角字符
  • \E 關(guān)閉之前的\U, \L, \H, \F修飾.

 

posted on 2009-10-21 13:03 肥仔 閱讀(1296) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 工具

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产麻豆91精品| 牛牛影视久久网| 久久综合久久综合这里只有精品| 亚洲精品在线二区| 亚洲国产另类 国产精品国产免费| 一区二区三区在线免费播放| 国产一区在线免费观看| 国产亚洲欧美aaaa| 亚洲国产精品成人综合| 日韩视频免费大全中文字幕| 99热免费精品在线观看| 亚洲午夜国产成人av电影男同| 亚洲深夜福利| 欧美一区二区三区免费视频| 久久精品一区二区国产| 免费永久网站黄欧美| 亚洲国产精品va在线观看黑人| 欧美激情二区三区| 亚洲人成小说网站色在线| 一本色道久久综合亚洲精品小说| 亚洲一二三四久久| 久久久久欧美精品| 欧美日韩人人澡狠狠躁视频| 国产精品一二一区| 亚洲人成在线播放| 欧美在线视频免费观看| 欧美激情亚洲自拍| 欧美一区二区三区另类| 欧美精品日本| 亚洲成人资源网| 亚洲欧美美女| 亚洲高清在线精品| 亚洲免费人成在线视频观看| 久久久久欧美精品| 国产精品久久久久91| 亚洲国产岛国毛片在线| 先锋影音网一区二区| 亚洲高清不卡| 久久久久免费| 国产精品亚洲综合一区在线观看| 亚洲电影专区| 久久久久国产免费免费| 欧美理论电影网| 欧美成人午夜激情视频| 亚洲免费观看在线视频| 亚洲欧美在线磁力| 欧美欧美在线| 亚洲成色999久久网站| 亚洲欧美高清| 亚洲精品自在久久| 免费不卡视频| 国内在线观看一区二区三区| 亚洲免费视频观看| 99综合精品| 欧美日本在线播放| 亚洲国产毛片完整版| 久久久久国产一区二区三区四区| 一本色道久久综合亚洲精品小说| 免费高清在线视频一区·| 韩国av一区二区三区在线观看| 亚洲欧美日韩精品久久亚洲区| 日韩视频一区二区三区| 欧美日韩爆操| 亚洲四色影视在线观看| 亚洲国产日韩欧美在线99| 久久夜精品va视频免费观看| 国产综合久久久久久鬼色| 久久精品视频导航| 欧美一区二区黄色| 好吊色欧美一区二区三区视频| 久久国产天堂福利天堂| 欧美亚洲一区二区在线| 国内精品视频666| 老牛嫩草一区二区三区日本| 久久精品午夜| 亚洲国产91| 亚洲国语精品自产拍在线观看| 免费91麻豆精品国产自产在线观看| 亚洲国产精品va在线观看黑人 | 亚洲激情二区| 91久久精品一区| 欧美日韩美女在线| 亚洲欧美视频在线观看视频| 亚洲女爱视频在线| 亚洲成在线观看| 亚洲肉体裸体xxxx137| 亚洲精品视频中文字幕| 欧美视频在线观看一区| 欧美一级久久| 久久综合久久久久88| 亚洲精品日韩一| 日韩小视频在线观看专区| 国产精品一级二级三级| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久综合激情| 欧美激情综合在线| 香蕉国产精品偷在线观看不卡| 欧美亚洲色图校园春色| 亚洲人成在线免费观看| 亚洲精品欧美日韩| 亚洲看片网站| 亚洲综合色婷婷| 91久久香蕉国产日韩欧美9色 | 亚洲香蕉网站| 亚洲国产一区在线观看| 在线视频精品一区| 国产自产女人91一区在线观看| 亚洲国产精品va在线观看黑人| 国产精品午夜av在线| 欧美成人一区二区在线| 国产精品高潮久久| 欧美岛国在线观看| 国产精品亚洲一区二区三区在线| 欧美国产日本韩| 国产欧美在线视频| 999在线观看精品免费不卡网站| 国产在线精品一区二区夜色| 亚洲人成在线播放| 在线精品国精品国产尤物884a| 亚洲制服丝袜在线| 一区二区三区 在线观看视频| 久久久国产91| 久久er99精品| 国产精品久久久久aaaa樱花 | 男人的天堂成人在线| 国产精品日韩一区二区三区| 亚洲激精日韩激精欧美精品| 国产一区二区久久| 亚洲女同精品视频| 亚洲欧美电影院| 欧美午夜无遮挡| 亚洲人成7777| 亚洲精品久久嫩草网站秘色| 久久久精品网| 久久美女艺术照精彩视频福利播放| 国产精品久久久久毛片软件| 亚洲美女毛片| 亚洲一区尤物| 国产精品久久久久久影院8一贰佰| 妖精成人www高清在线观看| 一区二区欧美视频| 国产精品va| 午夜精品久久久| 久久九九久精品国产免费直播| 国产亚洲欧美日韩日本| 久久久久久久性| 亚洲国产精品成人综合| 日韩视频在线观看一区二区| 欧美日韩国产综合一区二区 | 欧美国产三区| 一本色道久久综合狠狠躁篇怎么玩| 亚洲欧美精品在线| 国内精品久久久久影院色| 玖玖综合伊人| 亚洲美女精品久久| 欧美一级电影久久| 伊人色综合久久天天五月婷| 欧美不卡视频| 亚洲一区二区三区国产| 久久嫩草精品久久久久| 亚洲破处大片| 国产精品一级二级三级| 久久精品免费观看| 欧美精品播放| 午夜在线精品偷拍| 亚洲女性喷水在线观看一区| 欧美性开放视频| 日韩一二三区视频| 久久精品人人| 在线播放不卡| 国产精品a久久久久久| 亚洲视频免费看| 久久精品视频在线观看| 女同性一区二区三区人了人一| 99精品国产在热久久婷婷| 一区二区三区蜜桃网| 欧美午夜一区二区| 日韩亚洲国产精品| 免费人成精品欧美精品| 国产欧美日韩精品丝袜高跟鞋| 午夜日韩在线观看| 欧美成人一品| 亚洲影视中文字幕| 国产精品视频网址| 久久久久久久综合色一本| 一区二区三区毛片| 久久久噜噜噜久久人人看| 亚洲国产精品免费| 国产一二精品视频| 欧美电影免费观看| 亚洲综合久久久久| 牛牛影视久久网| 欧美在线一二三区| 在线观看国产欧美| 欧美三级乱码| 欧美一区二区三区在线视频| 在线一区欧美| 嫩草国产精品入口| 亚洲欧美制服中文字幕| 国产人久久人人人人爽|