成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Python正則表達式操作指南

Python正則表達式操作指南

熱門標簽:實用地圖標注app css百度地圖標注位置顯示 地圖標注商戶中心要收錢多少 菏澤智能ai電銷機器人銷售公司 宿遷智能外呼系統(tǒng)供應商 線上教育ai外呼系統(tǒng) 地圖標注字母的軟件 400免費電話去哪申請 鄂州人工智能電銷機器人軟件

Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。Python 1.5之前版本則是通過 regex 模塊提供 Emacs 風格的模式。Emacs 風格模式可讀性稍差些,而且功能也不強,因此編寫新代碼時盡量不要再使用 regex 模塊,當然偶爾你還是可能在老代碼里發(fā)現(xiàn)其蹤影。

1. 正則表達式基礎

1.1. 簡單介紹

正則表達式并不是Python的一部分。正則表達式是用于處理字符串的強大工具,擁有自己獨特的語法以及一個獨立的處理引擎,效率上可能不如str自帶的方法,但功能十分強大。得益于這一點,在提供了正則表達式的語言里,正則表達式的語法都是一樣的,區(qū)別只在于不同的編程語言實現(xiàn)支持的語法數(shù)量不同;但不用擔心,不被支持的語法通常是不常用的部分。如果已經(jīng)在其他語言里使用過正則表達式,只需要簡單看一看就可以上手了。

下圖展示了使用正則表達式進行匹配的流程:

 

正則表達式的大致匹配過程是:依次拿出表達式和文本中的字符比較,如果每一個字符都能匹配,則匹配成功;一旦有匹配不成功的字符則匹配失敗。如果表達式中有量詞或邊界,這個過程會稍微有一些不同,但也是很好理解的,看下圖中的示例以及自己多使用幾次就能明白。

下圖列出了Python支持的正則表達式元字符和語法:  

1.2. 數(shù)量詞的貪婪模式與非貪婪模式

正則表達式通常用于在文本中查找匹配的字符串。Python里數(shù)量詞默認是貪婪的(在少數(shù)語言里也可能是默認非貪婪),總是嘗試匹配盡可能多的字符;非貪婪的則相反,總是嘗試匹配盡可能少的字符。例如:正則表達式"ab*"如果用于查找"abbbc",將找到"abbb"。而如果使用非貪婪的數(shù)量詞"ab*?",將找到"a"。

1.3. 反斜杠的困擾

與大多數(shù)編程語言相同,正則表達式里使用"\"作為轉義字符,這就可能造成反斜杠困擾。假如你需要匹配文本中的字符"\",那么使用編程語言表示的正則表達式里將需要4個反斜杠"\\\\":前兩個和后兩個分別用于在編程語言里轉義成反斜杠,轉換成兩個反斜杠后再在正則表達式里轉義成一個反斜杠。Python里的原生字符串很好地解決了這個問題,這個例子中的正則表達式可以使用r"\\"表示。同樣,匹配一個數(shù)字的"\\d"可以寫成r"\d"。有了原生字符串,你再也不用擔心是不是漏寫了反斜杠,寫出來的表達式也更直觀。

1.4. 匹配模式

正則表達式提供了一些可用的匹配模式,比如忽略大小寫、多行匹配等,這部分內容將在Pattern類的工廠方法re.compile(pattern[, flags])中一起介紹。

2. re模塊

2.1. 開始使用re

Python通過re模塊提供對正則表達式的支持。使用re的一般步驟是先將正則表達式的字符串形式編譯為Pattern實例,然后使用Pattern實例處理文本并獲得匹配結果(一個Match實例),最后使用Match實例獲得信息,進行其他的操作。

# encoding: UTF-8
import re
# 將正則表達式編譯成Pattern對象
pattern = re.compile(r'hello')
# 使用Pattern匹配文本,獲得匹配結果,無法匹配時將返回None
match = pattern.match('hello world!')
if match:
  # 使用Match獲得分組信息
  print match.group()
### 輸出 ###
# hello
re.compile(strPattern[, flag]):

這個方法是Pattern類的工廠方法,用于將字符串形式的正則表達式編譯為Pattern對象。 第二個參數(shù)flag是匹配模式,取值可以使用按位或運算符'|'表示同時生效,比如re.I | re.M。另外,你也可以在regex字符串中指定模式,比如re.compile('pattern', re.I | re.M)與re.compile('(?im)pattern')是等價的。
可選值有:

re.I(re.IGNORECASE): 忽略大小寫(括號內是完整寫法,下同)
M(MULTILINE): 多行模式,改變'^'和'$'的行為(參見上圖)
S(DOTALL): 點任意匹配模式,改變'.'的行為
L(LOCALE): 使預定字符類 \w \W \b \B \s \S 取決于當前區(qū)域設定
U(UNICODE): 使預定字符類 \w \W \b \B \s \S \d \D 取決于unicode定義的字符屬性
X(VERBOSE): 詳細模式。這個模式下正則表達式可以是多行,忽略空白字符,并可以加入注釋。

以下兩個正則表達式是等價的:

a = re.compile(r"""\d + # the integral part
          \.  # the decimal point
          \d * # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")

re提供了眾多模塊方法用于完成正則表達式的功能。這些方法可以使用Pattern實例的相應方法替代,唯一的好處是少寫一行re.compile()代碼,但同時也無法復用編譯后的Pattern對象。這些方法將在Pattern類的實例方法部分一起介紹。如上面這個例子可以簡寫為:

m = re.match(r'hello', 'hello world!')
print m.group()

re模塊還提供了一個方法escape(string),用于將string中的正則表達式元字符如*/+/?等之前加上轉義符再返回,在需要大量匹配元字符時有那么一點用。

2.2. Match

Match對象是一次匹配的結果,包含了很多關于此次匹配的信息,可以使用Match提供的可讀屬性或方法來獲取這些信息。

屬性:

string: 匹配時使用的文本。

re: 匹配時使用的Pattern對象。

pos: 文本中正則表達式開始搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數(shù)相同。

endpos: 文本中正則表達式結束搜索的索引。值與Pattern.match()和Pattern.seach()方法的同名參數(shù)相同。

lastindex: 最后一個被捕獲的分組在文本中的索引。如果沒有被捕獲的分組,將為None。

lastgroup: 最后一個被捕獲的分組的別名。如果這個分組沒有別名或者沒有被捕獲的分組,將為None。

方法:

group([group1, …]):

獲得一個或多個分組截獲的字符串;指定多個參數(shù)時將以元組形式返回。group1可以使用編號也可以使用別名;編號0代表整個匹配的子串;不填寫參數(shù)時,返回group(0);沒有截獲字符串的組返回None;截獲了多次的組返回最后一次截獲的子串。

groups([default]):

以元組形式返回全部分組截獲的字符串。相當于調用group(1,2,…last)。default表示沒有截獲字符串的組以這個值替代,默認為None。

groupdict([default]):

返回以有別名的組的別名為鍵、以該組截獲的子串為值的字典,沒有別名的組不包含在內。default含義同上。

start([group]):

返回指定的組截獲的子串在string中的起始索引(子串第一個字符的索引)。group默認值為0。
end([group]):

返回指定的組截獲的子串在string中的結束索引(子串最后一個字符的索引+1)。group默認值為0。

span([group]):

返回(start(group), end(group))。

expand(template):

將匹配到的分組代入template中然后返回。template中可以使用\id或\gid>、\gname>引用分組,但不能使用編號0。\id與\gid>是等價的;但\10將被認為是第10個分組,如果你想表達\1之后是字符'0',只能使用\g1>0。

import re
m = re.match(r'(\w+) (\w+)(?Psign>.*)', 'hello world!')
print "m.string:", m.string
print "m.re:", m.re
print "m.pos:", m.pos
print "m.endpos:", m.endpos
print "m.lastindex:", m.lastindex
print "m.lastgroup:", m.lastgroup
print "m.group(1,2):", m.group(1, 2)
print "m.groups():", m.groups()
print "m.groupdict():", m.groupdict()
print "m.start(2):", m.start(2)
print "m.end(2):", m.end(2)
print "m.span(2):", m.span(2)
print r"m.expand(r'\2 \1\3'):", m.expand(r'\2 \1\3')
### output ###
# m.string: hello world!
# m.re: _sre.SRE_Pattern object at 0x016E1A38>
# m.pos: 0
# m.endpos: 12
# m.lastindex: 3
# m.lastgroup: sign
# m.group(1,2): ('hello', 'world')
# m.groups(): ('hello', 'world', '!')
# m.groupdict(): {'sign': '!'}
# m.start(2): 6
# m.end(2): 11
# m.span(2): (6, 11)
# m.expand(r'\2 \1\3'): world hello!

2.3. Pattern

Pattern對象是一個編譯好的正則表達式,通過Pattern提供的一系列方法可以對文本進行匹配查找。

Pattern不能直接實例化,必須使用re.compile()進行構造。

Pattern提供了幾個可讀屬性用于獲取表達式的相關信息:

pattern: 編譯時用的表達式字符串。

flags: 編譯時用的匹配模式。數(shù)字形式。

groups: 表達式中分組的數(shù)量。

groupindex: 以表達式中有別名的組的別名為鍵、以該組對應的編號為值的字典,沒有別名的組不包含在內。

import re
p = re.compile(r'(\w+) (\w+)(?Psign>.*)', re.DOTALL)
print "p.pattern:", p.pattern
print "p.flags:", p.flags
print "p.groups:", p.groups
print "p.groupindex:", p.groupindex
### output ###
# p.pattern: (\w+) (\w+)(?Psign>.*)
# p.flags: 16
# p.groups: 3
# p.groupindex: {'sign': 3}

實例方法[ | re模塊方法]:

match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]): 

這個方法將從string的pos下標處起嘗試匹配pattern;如果pattern結束時仍可匹配,則返回一個Match對象;如果匹配過程中pattern無法匹配,或者匹配未結束就已到達endpos,則返回None。

pos和endpos的默認值分別為0和len(string);re.match()無法指定這兩個參數(shù),參數(shù)flags用于編譯pattern時指定匹配模式。
注意:這個方法并不是完全匹配。當pattern結束時若string還有剩余字符,仍然視為成功。想要完全匹配,可以在表達式末尾加上邊界匹配符'$'。

示例參見2.1小節(jié)。

search(string[, pos[, endpos]]) | re.search(pattern, string[, flags]):

這個方法用于查找字符串中可以匹配成功的子串。從string的pos下標處起嘗試匹配pattern,如果pattern結束時仍可匹配,則返回一個Match對象;若無法匹配,則將pos加1后重新嘗試匹配;直到pos=endpos時仍無法匹配則返回None。

pos和endpos的默認值分別為0和len(string));re.search()無法指定這兩個參數(shù),參數(shù)flags用于編譯pattern時指定匹配模式。

# encoding: UTF-8 
import re 
 # 將正則表達式編譯成Pattern對象 

pattern = re.compile(r'world') 
 
# 使用search()查找匹配的子串,不存在能匹配的子串時將返回None 
# 這個例子中使用match()無法成功匹配 

match = pattern.search('hello world!') 
if match: 
  # 使用Match獲得分組信息 
  print match.group() 
### 輸出 ### 
# world
split(string[, maxsplit]) | re.split(pattern, string[, maxsplit]):

按照能夠匹配的子串將string分割后返回列表。maxsplit用于指定最大分割次數(shù),不指定將全部分割。

import re
p = re.compile(r'\d+')
print p.split('one1two2three3four4')
### output ###
# ['one', 'two', 'three', 'four', '']
findall(string[, pos[, endpos]]) | re.findall(pattern, string[, flags]): 

搜索string,以列表形式返回全部能匹配的子串。

import re
p = re.compile(r'\d+')
print p.findall('one1two2three3four4')
### output ###
# ['1', '2', '3', '4']
finditer(string[, pos[, endpos]]) | re.finditer(pattern, string[, flags]): 

搜索string,返回一個順序訪問每一個匹配結果(Match對象)的迭代器。

import re
p = re.compile(r'\d+')
for m in p.finditer('one1two2three3four4'):
  print m.group(),
### output ###
# 1 2 3 4
sub(repl, string[, count]) | re.sub(pattern, repl, string[, count]): 

使用repl替換string中每一個匹配的子串后返回替換后的字符串。
當repl是一個字符串時,可以使用\id或\gid>、\gname>引用分組,但不能使用編號0。
當repl是一個方法時,這個方法應當只接受一個參數(shù)(Match對象),并返回一個字符串用于替換(返回的字符串中不能再引用分組)。

count用于指定最多替換次數(shù),不指定時全部替換。

import re
p = re.compile(r'(\w+) (\w+)')
s = 'i say, hello world!'
print p.sub(r'\2 \1', s)
def func(m):
  return m.group(1).title() + ' ' + m.group(2).title()
print p.sub(func, s)
### output ###
# say i, world hello!
# I Say, Hello World!
subn(repl, string[, count]) |re.sub(pattern, repl, string[, count]): 
返回 (sub(repl, string[, count]), 替換次數(shù))。 
import re
p = re.compile(r'(\w+) (\w+)')
s = 'i say, hello world!'
print p.subn(r'\2 \1', s)
def func(m):
  return m.group(1).title() + ' ' + m.group(2).title()
print p.subn(func, s)
### output ###
# ('say i, world hello!', 2)
# ('I Say, Hello World!', 2)

以上就是Python對于正則表達式的支持。熟練掌握正則表達式是每一個程序員必須具備的技能,這年頭沒有不與字符串打交道的程序了。筆者也處于初級階段,與君共勉,^_^

另外,圖中的特殊構造部分沒有舉出例子,用到這些的正則表達式是具有一定難度的。有興趣可以思考一下,如何匹配不是以abc開頭的單詞,^_^

您可能感興趣的文章:
  • Python中正則表達式match()、search()函數(shù)及match()和search()的區(qū)別詳解
  • python3爬蟲之入門基礎和正則表達式
  • 基于Python正則表達式提取搜索結果中的站點地址
  • 理解python正則表達式
  • Python的爬蟲包Beautiful Soup中用正則表達式來搜索
  • Python正則表達式之基礎篇
  • 玩轉python爬蟲之正則表達式
  • Python匹配中文的正則表達式
  • Python的re模塊正則表達式操作
  • python 正則表達式學習小結
  • Python正則表達式使用經(jīng)典實例

標簽:鞍山 池州 六安 三亞 綿陽 恩施 咸陽 梅州

巨人網(wǎng)絡通訊聲明:本文標題《Python正則表達式操作指南》,本文關鍵詞  Python,正則,表達式,操作指南,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python正則表達式操作指南》相關的同類信息!
  • 本頁收集關于Python正則表達式操作指南的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    thepron国产精品| 免费国产黄色网址| 天天做夜夜做人人爱精品| 中文字幕免费在线不卡| 妞干网这里只有精品| aiss精品大尺度系列| 欧美精品第1页| 91九色视频导航| 少妇高潮喷水久久久久久久久久| 亚洲欧洲精品视频| 欧美熟妇激情一区二区三区| 国产亚洲一区| 欧美成人高清在线| 一二三四中文字幕| 国产精品人成电影| 日本护士...精品国| 亚洲一区二区三区视频在线| 久久精品国产欧美激情| aa视频在线免费观看| 欧美孕妇毛茸茸xxxx| 午夜亚洲伦理| 欧美一区二区三区四区视频| 日本精品一二区| 天天综合网在线观看| 精品久久精品久久| 91成人天堂久久成人| 不卡日韩av| 欧美系列日韩一区| 亚洲无限乱码一二三四麻| 国产伦精品一区二区免费| 偷拍自拍在线| 亚洲 中文字幕 日韩 无码| 成人动漫视频在线观看完整版| 日本精品视频一区二区三区| 成码无人av片在线观看网站| 亚洲欧美手机在线| 国产午夜精品一区二区三区嫩草| 丁香花在线影院观看在线播放| 亚洲乱码国产乱码精品精98午夜| 国内一区二区三区在线视频| 警花av一区二区三区| 欧美调教在线| 久久99久久99精品免观看软件| 884aa四虎影成人精品一区| 成人18夜夜网深夜福利网| 国产精品影视| 最近2018年在线中文字幕高清| 日韩www视频| 狠狠干夜夜爽| 国产婷婷一区二区三区| 日韩av高清在线看片| 亚洲欧美强伦一区二区| 曰本色欧美视频在线| 精品国产乱码久久久久久蜜臀网站| 国产高清视频在线观看| 久久综合免费视频影院| 久草视频这里只有精品| 亚洲一级Av无码毛片久久精品| 亚洲成av人**亚洲成av**| 丰满大乳国产精品| 亚洲444eee在线观看| xxx欧美xxx| 亚洲乱码av中文一区二区| 国产亚洲成av人片在线观黄桃| 日本电影全部在线观看网站视频| 精品国产伦一区二区三区观看方式| 国产精品zjzjzj在线观看| 欧美xxxx做受欧美| 欧美天堂在线视频| 国产三区二区一区久久| 无码人妻丰满熟妇区96| 日韩激情免费视频| 国产网站一区二区三区| 国产娇喘精品一区二区三区图片| 亚洲香蕉中文网| 亚洲一区二区在线免费看| 岛国在线视频| aa在线免费观看| 写真福利理论片在线播放| 欧美另类极品videosbest视频| 国产精品白丝一区二区三区| 亚洲无人区码一码二码三码| 国产精品自产拍在线网站| 国产偷v国产偷v亚洲高清| 熟女少妇a性色生活片毛片| 国产成人精品网| 欧美日韩成人激情| 亚洲免费观看高清完整版在线观看熊| 91精品国产黑色紧身裤美女| 岛国片免费观看| 国产精品熟妇一区二区三区四区| 韩日精品在线| 日韩在线观看免费高清完整版| 国产在线一区二区三区四区| 日本三级在线观看网站| 久在线观看福利视频| 激情视频一区| 亚洲自拍偷拍欧美| 精品人伦一区二区| 日本欧美黄色| 亚洲在线观看免费| sese在线视频| 一二美女精品欧洲| www.av在线| 国产日韩精品一区二区三区在线| av观看久久| 久久久精品有限公司| 一二三区视频在线观看| 欧美在线视频精品| 成人免费看的视频| 久久久久久久国产视频| 国产精品黄页网站在线播放免费| 日本黄色免费观看| 日本美女久久| 久久青青色综合| 一区二区三区精品在线| 91丨porny丨在线中文| 精品入口麻豆88视频| 久久久综合久久久| 国产一区二区三区四区hd| 一区二区三区不卡在线视频| 免费成人高清在线视频theav| 欧洲亚洲一区二区| 久草视频在线播放| 欧美在线你懂得| 日韩激情一区二区三区| www.超碰com| 亚洲777理论| 亚洲欧洲一区二区福利| 99国产精品一区| 国产va免费精品观看精品视频| 99精品老司机免费视频| 国产精品99久久久久久似苏梦涵| 91九色国产社区在线观看| 久久久久综合| 国产精品天天狠天天看| 久久人人爽人人爽人人片av不| 91在线免费看| 日本在线中文字幕一区二区三区| 亚洲第一成年网| 红桃一区二区三区| 在线观看免费91| 18成人免费观看网站下载| 精品国产乱码久久久久久影片| 久久99久久99精品免观看软件| 精品一区二区三区影院在线午夜| 久久这里只有精品首页| 神马久久久久久久| 色综合久久久久综合一本到桃花网| 日韩精品一区二区三区高清免费| 91综合久久| 成人av免费在线播放| 久久国产乱子精品免费女| 午夜cr在线观看高清在线视频完整版| 在线免费不卡电影| 自拍欧美日韩| 天天操天天射天天舔| 久久久久麻豆v国产精华液好用吗| 国产精品剧情一区二区在线观看| 国产精品99久久免费| 国产jzjzjz丝袜老师水多| 欧美日本不卡| 日韩啪啪电影网| 国产亚洲一级| 好吊色欧美一区二区三区视频| 欧美一区在线观看视频| 亚洲国产欧美一区二区三区不卡| 欧美高清性xxxxhdvideosex| 天堂av2024| www.555国产精品免费| 四虎永久免费地址| 免费观看一级视频| 日韩在线观看免费全| 91免费黄视频| 九九热中文字幕| 久久久精品视频在线观看| 国产精品久久综合| 国内精品久久久久久久97牛牛| 精品黄色一级片| 免费的很黄很污的视频网站| 亚洲第一综合色| 中文字幕一区二区三区四区视频| 欧美日韩免费电影| 久久久青草婷婷精品综合日韩| 免费一级特黄3大片视频| www.欧美精品一二三区| 天天射天天操天天干| 永久免费看mv网站入口78| 中文字幕在线官网| 中文字幕永久在线不卡| 亚洲色图偷拍自拍| 久久成人免费日本黄色| 国产高清精品网站| 97激碰免费视频| 玖玖玖免费嫩草在线影院一区| 久久免费视频2| 国产精品18久久久久网站| 欧美激情 亚洲a∨综合| 久9re热视频这里只有精品| 国产揄拍国内精品对白| 一本色道久久综合狠狠躁篇的优点| 国产综合色产在线精品| 欧美三级电影在线| 日本一区二区三区在线观看视频| 国产精品入口麻豆九色| 麻豆久久久久久久| 少妇无码一区二区三区| 国产一区二区三区四区在线| 国产成人欧美在线观看| 国产人成亚洲第一网站在线播放| 福利视频网站| 六月天色婷婷| 欧美在线视频第一页| 91理论片午午论夜理片久久| 精品一区毛片| 伊人久久一区| 国产女同在线观看| 中文国语毛片高清视频| 青青a在线精品免费观看| 国产在线91| 波多野结衣中文字幕久久| 欧美精品第三页| 最新精品国偷自产在线| 影音先锋国产资源站| 国产桃色电影在线播放| 日本日本19xxxⅹhd乱影响| 久久久久免费网站| 欧美黄色直播| 中文字幕v亚洲ⅴv天堂| 日韩性小视频| 久久久激情视频| 久久久久久久久久久久久久久久av| 欧美日韩精品系列| 亚洲精品久久久久中文字幕欢迎你| 亚洲国产综合视频| 91国内精品视频| 国产情侣久久久久aⅴ免费| 韩国av在线播放| 李宗瑞系列合集久久| 99精品国产99久久久久久97| 国产精品极品美女在线观看免费| 成年女人免费毛片视频永久| 欧美黑人极品猛少妇色xxxxx| 三级黄色的网站| 欧美大交乱xxxx| 国产精品久久久免费看| 自拍自偷一区二区三区| 亚洲视频tv| 国产v在线观看| 国产精品美女999| 亚洲自拍偷拍一区二区三区| 人人艹在线视频| 美女羞羞视频在线观看| 欧美性猛交xxxx| 久久久久久国产精品免费播放| 成人性做爰片免费视频| 性欧美一区二区三区| 久久久亚洲精品一区二区三区| 日本欧美肥老太交大片| 高跟丝袜欧美一区| 中文久久电影小说| 中文字幕亚洲精品在线观看| 日韩免费观看网站| 亚洲欧洲韩国日本视频| 久久黄色一级视频| 国产极品嫩模在线观看91精品| 欧美国产日韩亚洲一区| 无码人妻aⅴ一区二区三区日本| 成人短视频在线观看免费| 亚洲狠狠婷婷| 国产精品亚洲αv天堂无码| 91在线高清免费观看| 中文字幕久热精品视频在线| 最近中文字幕2019第二页视频| 欧美在线观看一区| 草民电影神马电影一区二区| 欧美激情福利| 欧美一区二区三区性视频| 国产不卡在线观看| 老司机午夜免费福利视频| 亚洲激情男女视频| 丰满人妻一区二区三区无码av| 成人77777| 中文字幕一区二区不卡| 亚洲乱码国产乱码精品精天堂| 国产一区二区观看| www国产精品视频| 国产在线观看福利| 日本三级亚洲精品| 先锋影音av在线| 成人在线视频区| 中文字幕 亚洲一区| 欧美视频完全免费看| free性丰满69性欧美| 重囗味另类老妇506070| 国产精品51麻豆cm传媒| 亚洲国产一区二区三区在线观看| 成人av激情人伦小说| 综合一区av| 欧美日韩播放| 久久不射2019中文字幕| 精品无吗乱吗av国产爱色| 中文字幕丰满孑伦无码专区| 丰满肥臀噗嗤啊x99av| 日韩一级二级三级| bdsm精品捆绑chinese女| 欧美永久精品| 亚洲精品无码久久久| 男人天堂资源在线| 在线日韩网站| 九九精品在线播放| 中文字幕 自拍| 亚洲精品视频中文字幕| 欧美精品成人一区二区三区四区| 嫩草影院在线观看网站成人| 成人国产二区| 成人av一区二区三区在线观看| 日本一区二区不卡在线| 欧美日韩在线免费播放| 亚洲 欧美 日韩 在线| 亚州精品国产精品乱码不99按摩| 欧美激情久久久久久久久久久| 国产伦精品一区二区三区视频免费| 91国偷自产一区二区三区的观看方式| 色猫视频免费观看| 国产精品免费视频xxxx| 欧洲中文在线| 牛牛热在线视频|