欧美性色黄大片www喷水-蜜桃av在线播放-人妻无码αv中文字幕久久琪琪布-乱码午夜-极品国产内射-久久久福利视频-久久久久网址

您現在所在的位置:首頁 >學習資源 > Python全棧+人工智能入門教材 > Python基礎入門教程32.企業級開發進階4:正則表達式

Python基礎入門教程32.企業級開發進階4:正則表達式

來源:奇酷教育 發表于:

本節內容,要講解的和我們的信息檢索有關系,這一方面也是Python在目前非常流行的一個應用方向:爬蟲。本節內容什么是正則表達式正則表達式

本節內容,要講解的和我們的信息檢索有關系,這一方面也是Python在目前非常流行的一個應用方向:爬蟲。

本節內容

  • 什么是正則表達式
  • 正則表達式入門程序
  • python中的正則表達式模塊介紹
  • 正則表達式元字符匹配
  • 正則表達式量詞匹配
  • 正則表達式范圍匹配
  • 正則表達式分組匹配
  • 正則表達式的貪婪模式和懶惰模式
  • 正則表達式特殊匹配

1. 什么是正則表達式

正則表達式:也成為規則表達式,英文名稱Regular Expression,我們在程序中經常會縮寫為regex或者regexp,專門用于進行文本檢索、匹配、替換等操作的一種技術。
注意:正則表達式是一種獨立的技術,并不是某編程語言獨有的

關于正則表達式的來歷
long long logn years ago,美國新澤西州的兩個人類神經系統工作者,不用干正事也能正常領工資的情況下,有段時間閑的發慌,于是他們開始研究一個課題~怎么使用數學方式來描述人類的神經網絡。

這一研究,還真是搞事!另一個數學家Stephen Kleene根據他們的研究基礎,通過數學算法處理,發布了《神經網事件表示法》,利用的就是正則集合的數學符號描述這個模型,正則表達式的概念進入了人們的視線。

又來了一個搞事的人~某個家伙上學學完正常的課程之后(這事在中國貌似發生不了),開始搗鼓計算機操作系統,并且搞出了現在在軟件行業非常出名的系統:Unix,它就是Unix之父Ken Thompson,這個家伙也看到了那個數學家發布的論文,于是將正則表達式經過優化處理之后,引入到了Unix操作系統中專門用于文本的高效檢索。

一發不可收拾,正則表達式,開始陸陸續續在各個編程語言中出現,并以它優雅的表現形式和高效的工作態度,而著名于各個語言和行業方向。

正則表達式,是一種特殊的符號,這樣的符號是需要解釋才能使用的,也就是需要正則表達式引擎來進行解釋,目前正則表達式的引擎主要分三種:DFA,NFA、POSIX NFA,有興趣了正則表達式引擎的童鞋,可以自己查看資料

2. 正則表達式語法結構

接下來,我們開始了解這樣一個神秘的可以類似人類神經網絡一樣思考問題的技術的語法結構。
注意:我們通過python程序進行測試,但是正則表達式的語法結構在各種語言環境中都是通用的。

2.1. 入門案例:了解正則表達式

我們通過一個簡單的案例入手:通常情況下,我們會驗證用戶輸入的手機號碼是否合法,是否156/186/188開頭的手機號碼,如果按照常規驗證手段,就需要對字符串進行拆分處理,然后逐步匹配

重要提示:python中提供了re模塊,包含了正則表達式的所有功能,專門用于進行正則表達式的處理;

我們首先看一下,常規的手機號碼驗證過程

userphone = input("請輸入手機號碼:")

# 驗證用戶手機號碼是否合法的函數
def validatePhone(phone):
    msg = "提示信息:請輸入手機號碼"
    # 判斷輸入的字符的長度是否合法
    if len(phone) == 11:
        # 判斷是否156/186/188開頭
        if phone.startswith("156") or phone.startswith("186") or phone.startswith("188"):
            # 判斷每一個字符都是數字
            for num in phone:
                # isdigit()函數用于判斷調用者是否數字
                if not num.isdigit():
                    msg = "不能包含非法字符"
                    return msg
            msg = "手機號碼合法"
        else:
            msg = "開頭數字不合法"
    else:
        msg = "長度不合法"
    return msg

# 開始測試
print(validatePhone(userphone))

執行上面的代碼,分別輸入不同的手機號碼,結果如下

請輸入手機號碼:188
長度不合法

請輸入手機號碼:15568686868
開頭數字不合法

請輸入手機號碼:1566868686a
不能包含非法字符

請輸入手機號碼:15688888888
手機號碼合法

我們再次使用正則表達式來改造這段程序
注意:如果下面的程序中出現了一些語法不是很明白,沒關系,后面會詳細講解

import re

# 接收用戶輸入
userphone = input("請輸入手機號碼")

# 定義驗證手機號碼的函數
def validatePhone(phone):
    # 定義正則表達式,Python中的正則表達式還是一個字符串,是以r開頭的字符串
    regexp = r"^(156|186|188)\d{8}$"
    # 開始驗證
    if re.match(regexp, phone):
        return "手機號碼合法"
    else:
        return "手機號碼只能156/186/188開頭,并且每一個字符都是數字,請檢查"

# 開始驗證
print(validatePhone(userphone))

執行上面的代碼,我們得到正常驗證的結果,大家可以自己試一試。
我們從這兩套代碼中,可以看出來,使用了正則表達式之后的程序變得非常簡潔了,那保持好你的沖動和熱情,讓正則表達式來搞事吧

2.3. python中的正則表達式模塊re

python提供的正則表達式處理模塊re,提供了各種正則表達式的處理函數

2.3.1 字符串查詢匹配的函數:

函數 描述
re.match(reg, info) 用于在開始位置匹配目標字符串info中符合正則表達式reg的字符,匹配成功會返回一個match對象,匹配不成功返回None
re.search(reg, info) 掃描整個字符串info,使用正則表達式reg進行匹配,匹配成功返回匹配的第一個match對象,匹配不成功返回None
re.findall(reg, info) 掃描整個字符串info,將符合正則表達式reg的字符全部提取出來存放在列表中返回
re.fullmatch(reg, info) 掃描整個字符串,如果整個字符串都包含在正則表達式表示的范圍中,返回整個字符串,否則返回None
re.finditer(reg, info) 掃描整個字符串,將匹配到的字符保存在一個可以遍歷的列表中

參考官方re.py源代碼如下:

def match(pattern, string, flags=0):
    """Try to apply the pattern at the start of the string, returning
    a match object, or None if no match was found."""
    return _compile(pattern, flags).match(string)

def fullmatch(pattern, string, flags=0):
    """Try to apply the pattern to all of the string, returning
    a match object, or None if no match was found."""
    return _compile(pattern, flags).fullmatch(string)

def search(pattern, string, flags=0):
    """Scan through string looking for a match to the pattern, returning
    a match object, or None if no match was found."""
    return _compile(pattern, flags).search(string)

def findall(pattern, string, flags=0):
    """Return a list of all non-overlapping matches in the string.

    If one or more capturing groups are present in the pattern, return
    a list of groups; this will be a list of tuples if the pattern
    has more than one group.

    Empty matches are included in the result."""
    return _compile(pattern, flags).findall(string)

def finditer(pattern, string, flags=0):
    """Return an iterator over all non-overlapping matches in the
    string.  For each match, the iterator returns a match object.

    Empty matches are included in the result."""
    return _compile(pattern, flags).finditer(string)

2.3.2 字符串拆分替換的函數:

函數 描述
re.split(reg, string) 使用指定的正則表達式reg匹配的字符,將字符串string拆分成一個字符串列表,如:re.split(r"\s+", info),表示使用一個或者多個空白字符對字符串info進行拆分,并返回一個拆分后的字符串列表
re.sub(reg, repl, string) 使用指定的字符串repl替換目標字符串string匹配正則表達式reg的字符

參考官方源代碼如下:

def split(pattern, string, maxsplit=0, flags=0):
    """Split the source string by the occurrences of the pattern,
    returning a list containing the resulting substrings.  If
    capturing parentheses are used in pattern, then the text of all
    groups in the pattern are also returned as part of the resulting
    list.  If maxsplit is nonzero, at most maxsplit splits occur,
    and the remainder of the string is returned as the final element
    of the list."""
    return _compile(pattern, flags).split(string, maxsplit)

def sub(pattern, repl, string, count=0, flags=0):
    """Return the string obtained by replacing the leftmost
    non-overlapping occurrences of the pattern in string by the
    replacement repl.  repl can be either a string or a callable;
    if a string, backslash escapes in it are processed.  If it is
    a callable, it's passed the match object and must return
    a replacement string to be used."""
    return _compile(pattern, flags).sub(repl, string, count)

接下來,我們進入正則表達式干貨部分

2.4. 正則表達式中的元字符

在使用正則表達式的過程中,一些包含特殊含義的字符,用于表示字符串中一些特殊的位置,非常重要,我們先簡單了解一下一些常用的元字符

元字符 描述
^ 表示匹配字符串的開頭位置的字符
$ 表示匹配字符串的結束位置的字符
. 表示匹配任意一個字符
\d 匹配一個數字字符
\D 匹配一個非數字字符
\s 匹配一個空白字符
\S 匹配一個非空白字符
\w 匹配一個數字/字母/下劃線中任意一個字符
\W 匹配一個非數字字母下劃線的任意一個字符
\b 匹配一個單詞的邊界
\B 匹配不是單詞的開頭或者結束位置

上干貨:代碼案例

# 導入正則表達式模塊
import re

# 定義測試文本字符串,我們后續在這段文本中查詢數據
msg1 = """Python is an easy to learn, powerful programming language.
It has efficient high-level data structures and a simple but effective approach to object-oriented programming.
Python’s elegant syntax and dynamic typing, together with its interpreted nature, 
make it an ideal language for scripting and rapid application development in many areas on most platforms.
"""
msg2 = "hello"
msg3 = "hello%"

# 定義正則表達式,匹配字符串開頭是否為python
regStart = r"efficient"

# 從字符串開始位置匹配,是否包含符合正則表達式的內容,返回匹配到的字符串的Match對象
print(re.match(regStart, msg1))
# 掃描整個字符串,是否包含符合正則表達式的內容,返回匹配到的第一個字符串的Match對象
print(re.search(regStart, msg1))
# 掃描整個字符串,是否包含符合正則表達式的內容,返回匹配到的所有字符串列表
print(re.findall(regStart, msg1))
# 掃描整個字符串,是否包含符合正則表達式的內容,返回匹配到的字符串的迭代對象
for r in re.finditer(regStart, msg1):
    print("->"+ r.group())
# 掃描整個字符串,是否包含在正則表達式匹配的內容中,是則返回整個字符串,否則返回None
print(re.fullmatch(r"\w*", msg2))
print(re.fullmatch(r"\w*", msg3))

上述代碼執行結果如下:

~ None
~

~['efficient']
~->efficient
~

~None

2.5. 正則表達式中的量詞

正則表達式中的量詞,是用于限定數量的特殊字符

量詞 描述
x* 用于匹配符號*前面的字符出現0次或者多次
x+ 用于匹配符號+前面的字符出現1次或者多次
x? 用于匹配符號?前面的字符出現0次或者1次
x{n} 用于匹配符號{n}前面的字符出現n次
x{m,n} 用于匹配符號{m,n}前面的字符出現至少m次,最多n次
x{n, } 用于匹配符號{n, }前面的字符出現至少n次

接上代碼干貨:

# 導入正則表達式模塊
import re

# 定義測試文本字符串,我們后續在這段文本中查詢數據
msg1 = """goodgoodstudy!,dooodooooup"""

# 匹配一段字符串中出現單詞o字符0次或者多次的情況
print(re.findall(r"o*", msg1))
# 匹配一段字符串中出現單詞o字符1次或者多次的情況
print(re.findall(r"o+", msg1))
# 匹配一段字符串中出現單詞o字符0次或者1次的情況
print(re.findall(r"o?", msg1))
# 匹配字符串中連續出現2次字符o的情況
print(re.findall(r"o{2}", msg1))
# 匹配字符串中連續出現2次以上字符o的情況
print(re.findall(r"o{2,}", msg1))
# 匹配字符串中連續出現2次以上3次以內字符o的情況
print(re.findall(r"o{2,3}", msg1))

上述代碼大家可以自行嘗試并分析結果。執行結果如下:

['', 'oo', '', '', 'oo', '', '', '', '', '', '', '', '', '', 'ooo', '', 'oooo', '', '', '']
['oo', 'oo', 'ooo', 'oooo']
['', 'o', 'o', '', '', 'o', 'o', '', '', '', '', '', '', '', '', '', 'o', 'o', 'o', '', 'o', 'o', 'o', 'o', '', '', '']
['oo', 'oo', 'oo', 'oo', 'oo']
['oo', 'oo', 'ooo', 'oooo']
['oo', 'oo', 'ooo', 'ooo']

2.6. 正則表達式中的范圍匹配

在正則表達式中,針對字符的匹配,除了快捷的元字符的匹配,還有另一種使用方括號進行的范圍匹配方式,具體如下:

范圍 描述
[0-9] 用于匹配一個0~9之間的數字,等價于\d
[^0-9] 用于匹配一個非數字字符,等價于\D
[3-6] 用于匹配一個3~6之間的數字
[a-z] 用于匹配一個a~z之間的字母
[A-Z] 用于匹配一個A~Z之間的字母
[a-f] 用于匹配一個a~f之間的字母
[a-zA-Z] 用于匹配一個a~z或者A-Z之間的字母,匹配任意一個字母
[a-zA-Z0-9] 用于匹配一個字母或者數字
[a-zA-Z0-9_] 用于匹配一個字母或者數字或者下劃線,等價于\w
[^a-zA-Z0-9_] 用于匹配一個非字母或者數字或者下劃線,等價于\W

注意:不要使用[0-120]來表示0~120之間的數字,這是錯誤的

整理測試代碼如下:

# 引入正則表達式模塊
import re

msg = "Hello, The count of Today is 800"
# 匹配字符串msg中所有的數字
print(re.findall(r"[0-9]+", msg))
# 匹配字符串msg中所有的小寫字母
print(re.findall(r"[a-z]+", msg))
# 匹配字符串msg中所有的大寫字母
print(re.findall(r"[A-Z]+", msg))
# 匹配字符串msg中所有的字母
print(re.findall(r"[A-Za-z]+", msg))

上述代碼執行結果如下:

['800']
['ello', 'he', 'count', 'of', 'oday', 'is']
['H', 'T', 'T']
['Hello', 'The', 'count', 'of', 'Today', 'is']

2.7. 正則表達式中的分組

正則表達式主要是用于進行字符串檢索匹配操作的利器
在一次完整的匹配過程中,可以將匹配到的結果進行分組,這樣就更加的細化了我們對匹配結果的操作
正則表達式通過圓括號()進行分組,以提取匹配結果的部分結果

常用的兩種分組:

分組 描述
(expression) 使用圓括號直接分組;正則表達式本身匹配的結果就是一個組,可以通過group()或者group(0)獲取;然后正則表達式中包含的圓括號就是按照順序從1開始編號的小組
(?Pexpression) 使用圓括號分組,然后給當前的圓括號表示的小組命名為name,可以通過group(name)進行數據的獲取

廢話少說,上干貨:

# 引入正則表達式模塊
import re

# 用戶輸入座機號碼,如"010-6688465"
phone = input("請輸入座機號碼:")
# 1.進行正則匹配,得到Match對象,對象中就包含了分組信息
res1 = re.search(r"^(\d{3,4})-(\d{4,8})$", phone)
# 查看匹配結果
print(res1)
# 匹配結果為默認的組,可以通過group()或者group(0)獲取
print(res1.group())
# 獲取結果中第一個括號對應的組數據:處理區號
print(res1.group(1))
# 獲取結果中第二個括號對應的組數據:處理號碼
print(res1.group(2))

# 2.進行正則匹配,得到Match對象,對象中就包含了命名分組信息
res2 = re.search(r"^(?P\d{3,4})-(?P\d{4,8})$", phone)
# 查看匹配結果
print(res2)
# 匹配結果為默認的組,可以通過group()或者group(0)獲取
print(res2.group(0))
# 通過名稱獲取指定的分組信息:處理區號
print(res2.group("nstart"))
# 通過名稱獲取指定分組的信息:處理號碼
print(res2.group("nend"))

上述代碼就是從原始字符串中,通過正則表達式匹配得到一個結果,但是使用了分組之后,就可以將結果數據通過分組進行細化處理,執行結果如下:

請輸入座機號碼:021-6565789

<_sre.SRE_Match object; span=(0, 11), match='021-6565789'>
021-6565789
021
6565789

<_sre.SRE_Match object; span=(0, 11), match='021-6565789'>
021-6565789
021
6565789

2.8. 正則表達式中的特殊用法

使用分組的同時,會有一些特殊的使用方式如下:

表達式 描述
(?:expression) 作為正則表達式的一部分,但是匹配結果丟棄
(?=expression) 匹配expression表達式前面的字符,如 "How are you doing" ,正則"(?.+(?=ing))" 這里取ing前所有的字符,并定義了一個捕獲分組名字為 "txt" 而"txt"這個組里的值為"How are you do"
(?<=expression) 匹配expression表達式后面的字符,如 "How are you doing" 正則"(?(?<=How).+)" 這里取"How"之后所有的字符,并定義了一個捕獲分組名字為 "txt" 而"txt"這個組里的值為" are you doing";
(?!expression) 匹配字符串后面不是expression表達式字符,如 "123abc" 正則 "\d{3}(?!\d)"匹配3位數字后非數字的結果
(? 匹配字符串前面不是expression表達式字符,如 "abc123 " 正則 "(?

2.9 正則表達式的貪婪模式和懶惰模式

在某些情況下,我們匹配的字符串出現一些特殊的規律時,就會出現匹配結果不盡如人意的意外情況
如:在下面的字符串中,將div標簽中的所有內容獲取出來

<div>內容1div><p>這本來是不需要的內容p><div>內容2div>

此時,我們想到的是,使用

作為關鍵信息進行正則表達式的定義,如下

 

regexp = r"
.*
"

本意是使用上述代碼來完成div開始標簽和結束標簽之間的內容匹配,但是,匹配的結果如下

<div> [內容1div><p>這本來是不需要的內容p><div>內容2] div>

我們可以看到,上面匹配的結果,是將字符串開頭的

標簽和字符串結束的
當成了匹配元素,對包含在中間的內容直接進行了匹配,也就得到了我們期望之外的結果:

 

內容1div><p>這本來是不需要的內容p><div>內容2

上述就是我們要說的正則表達式的第一種模式:貪婪模式
貪婪模式:正則表達式匹配的一種模式,速度快,但是匹配的內容會從字符串兩頭向中間搜索匹配(比較貪婪~),一旦匹配選中,就不繼續向字符串中間搜索了,過程如下:

開始:<div>內容1div><p>這本來是不需要的內容p><div>內容2div>

第一次匹配:【<div>內容1div><p>這本來是不需要的內容p><div>內容2div>】

第二次匹配<div>【內容1div><p>這本來是不需要的內容p><div>內容2】div>

匹配到正則中需要的結果,不再繼續匹配,直接返回匹配結果如下:
內容1div><p>這本來是不需要的內容p><div>內容2

明顯貪婪模式某些情況下,不是我們想要的,所以出現了另一種模式:懶惰模式
懶惰模式:正則表達式匹配的另一種模式,會首先搜索匹配正則表達式開始位置的字符,然后逐步向字符串的結束位置查找,一旦找到匹配的就返回,然后接著查找

regexp = r"
.*?
"
開始:<div>內容1div><p>這本來是不需要的內容p><div>內容2div>

第一次匹配:【<div>】內容1div><p>這本來是不需要的內容p><div>內容2div>

第二次匹配【<div>內容1div>】<p>這本來是不需要的內容p><div>內容2div>

匹配到正則中需要的結果:內容1

繼續向后查找

第三次匹配<div>內容1div>【<p>這本來是不需要的內容p>】<div>內容2div>

第四次匹配<div>內容1div><p>這本來是不需要的內容p>【<div>內容2div>】

匹配到正則中需要的結果:內容2

查找字符串結束!

正則表達式匹配的兩種模式:貪婪模式、懶惰模式
貪婪模式:從目標字符串的兩頭開始搜索,一次盡可能多的匹配符合條件的字符串,但是有可能會匹配到不需要的內容,正則表達式中的元字符、量詞、范圍等都模式是貪婪匹配模式,使用的時候一定要注意分析結果,如:

.*
就是一個貪婪模式,用于匹配
之間所有的字符
懶惰模式:從目標字符串按照順序從頭到位進行檢索匹配,盡可能的檢索到最小范圍的匹配結果,語法結構是在貪婪模式的表達式后面加上一個符號?即可,如
.*?
就是一個懶惰模式的正則,用于僅僅匹配最小范圍的
之間的內容

 

不論貪婪模式還是懶惰模式,都有適合自己使用的地方,大家一定要根據實際需求進行解決方案的確定

>>>更多VR/AR入門教程:VR入門


主站蜘蛛池模板: 日日躁夜夜躁狠狠躁超爽2001 | 免费精品久久久久久久一区二区 | 国产一区导航 | 欧美成人aaa片一区国产精品 | 久久青青草原国产毛片 | 久久久久久久久福利 | 黄色毛片a级| 精品国产乱码久久久久久口爆网站 | 后入内射国产一区二区 | 久久久久69| 成年人网站在线 | 精品卡一卡二卡3卡高清乱码 | 亚洲精品女人 | 亚洲国产精品久久久久久 | 国产免费毛卡片 | 亚洲一级免费在线观看 | 超碰在线最新 | 日韩综合在线观看 | 成人性生交大片免费看96 | 婷婷六月综合网 | 欧美专区在线视频 | 亚洲天堂中文字幕在线观看 | av天堂午夜精品一区二区三区 | 女同 另类 激情 重口 | 成人黄色在线看 | 日本美女色视频 | 日本黄页视频 | 欧美成人精品一级乱黄 | 日韩福利片在线观看 | а√新版天堂资源中文8 | 自拍偷拍2019 | 无码专区3d动漫精品免费 | 无码福利日韩神码福利片 | 激情综合图区 | 国内精品久久久久久久久 | 色狠狠色狠狠综合天天 | 亚洲视频区 | 天堂无人区乱码一区二区三区介绍 | 牲高潮99爽久久久久777 | 亚洲国产成人欧美激情 | 成人中文在线 | 成人在线视频免费观看 | 日日射天天干 | 亚洲人成人毛片无遮挡 | 国产婷婷成人久久av免费高清 | 一区二区视频免费看 | 狠狠欧美| 美女131爽爽爽做爰视频 | 亚洲精品国产精品乱码不卡 | 日本三级网址 | eeuss国产一区二区三区 | 波多野结衣网站 | 第一次处破女啪啪 | 亚洲国产成人在线观看 | 国产猛男猛女超爽免费视频网站 | 日本乱论视频 | 9九色桋品熟女内射 | 婷婷久久伊人 | 欧美精品videosex极品 | 国产成人精品一区二区视频 | 无码h肉动漫在线观看 | 国产精品美女一区二区视频 | 欧美卡一卡二 | 国产做受高潮69 | 视色在线| wwwwww国产| 另类小说亚洲色图 | 一级做a爰片 | 色综合成人 | 91精品视频国产 | 国产毛茸茸毛毛多水水多 | 久久久久久婷婷 | 日本午夜一区二区 | 亚洲永久精品ww47 | 日韩欧美福利 | 国产精品成人亚洲一区二区 | 91大神小宝寻花在线观看 | 中文在线字幕免 | 9lporm自拍视频区九色 | 国产激情无码一区二区app | 中国极品少妇xxxxⅹ喷水 | 五月婷婷操 | 天天躁狠狠躁狠狠躁夜夜躁 | 午夜久久久精品 | 免费观看黄色一级视频 | 成人精品视频在线 | 国产精品亚洲欧美日韩在线观看 | 亚洲一区二区福利视频 | 农村老熟妇乱子伦视频 | 爱爱高潮视频 | 国产一级片黄色 | 国产一区二区网站 | 日韩欧美精品一区二区 | 午夜爱精品免费视频一区二区 | 第四色视频 | 一级黄色大片免费 | 黄色片免费在线 | 双性调教总裁失禁尿出来 | 色综合天天综合网国产成人网 | 亚洲免费成人 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 国产三级在线播放 | 日韩视频在线免费 | 欧美日韩五区 | 色偷偷亚洲男人的天堂 | 亚洲第三区 | 日本一级少妇免费视频乌克兰裸体 | 操女人视频网站 | 我和丰满老女人性销魂 | 国产高清视频在线免费观看 | 中文字幕日韩专区 | 91丨九色丨蝌蚪丨老版 | 中文字幕第23页在线 | 日本亚洲色大成网站www久久 | 欧美日韩一级大片 | 天天艹逼网 | 色妞色视频一区二区三区四区 | 欧美自拍第一页 | 久久香蕉国产线熟妇人妻 | 亚洲va天堂va欧美ⅴa在线 | 国产精品99久久久久久动医院 | 久久国产精品免费一区 | 欧美一级大黄大黄大色毛片小说 | 精品成人在线视频 | 国产精品第52页 | 国产精品久久久久乳精品爆 | 韩国精品一区 | 性久久久久久久 | 一本久久综合亚洲鲁鲁五月天 | 天天综合网国产 | 国产视频精选 | 窝窝在线视频 | 午夜三级a三级三点窝 | 综合精品欧美日韩国产在线 | 樱花草在线播放免费中文 | 国产青青草 | 最新国产三级 | 久久久精 | 日韩精品在线观看一区二区 | 欧美韩一区二区 | 人人色网 | 久久精品国产一区二区电影 | 色哟哟视频 | 伊人色综合久久天天人手人婷 | 丰满放荡岳乱妇91ww | 一级做性色a爱片久久毛片欧 | 欧美一级色 | 国产精品无码不卡一区二区三区 | 亚洲精品色 | 久久天堂av | 日韩激情无码免费毛片 | 成人亚洲网站 | 青青草在线免费视频 | a在线亚洲男人的天堂 | 国产女人18毛片18精品 | 日本无翼乌邪恶大全彩h | 亚洲视频欧美 | 青青草视频在线看 | 亚洲精品国产嫩草在线观看东京热 | 亚洲第七页 | 香蕉久久久久久 | 成人免费视频免费观看 | 欧美另类交在线观看 | 可以在线观看av的网站 | av黄色在线| 亚洲精品一区二三区不卡 | 久久无码中文字幕免费影院蜜桃 | 成人国产精品免费观看 | 中文字幕丝袜诱惑 | 成年人午夜视频在线观看 | 色播亚洲视频在线观看 | 亚洲综合色婷婷 | 精品日本一区二区三区免费 | 无码人妻丰满熟妇区毛片18 | 欧美午夜精品久久久久久蜜 | 欧美人与禽zozzo视频 | 国产精品久久久久久久久久直播 | 中文字幕1| 欧美极品少妇xxxxⅹ猛交 | 国产精品一线二线三线 | 欧美成人精品第一区二区三区 | 青青草原亚洲 | 久久亚洲精品中文字幕 | 久国产精品韩国三级视频 | 欧美丰满熟妇xxxx | 超碰在线免费观看97 | 欧美区一区二区 | 中文在线国产 | 中文字幕乱偷在线小说 | 337p粉嫩大胆色噜噜噜 | 国91精品久久久久9999不卡 | 国产伦对白刺激精彩露脸 | 国产高清无密码一区二区三区 | 色婷婷av一本二本三本浪潮 | 精久国产av一区二区三区孕妇 | 国产精品91在线 | 色播在线视频 | 美女18毛片| 午夜tv| 大学生高潮无套内谢视频 | 国产又黄又嫩又滑又白 | 9色视频在线观看 | 在线黄色大片 | 宅男撸66国产精品 | 六月婷婷七月丁香 | 国产成人综合亚洲 | 毛片哪里看 | 夜色福利站www国产在线视频 | 亚洲国产影院av久久久久 | 亚洲成a人片在线观看天堂无码 | 亚洲国产人午在线一二区 | 亚洲国产精品久久久久久无码 | 狠狠婷婷| 欧美人禽动交2002 | 天天综合色网 | 亚洲精品国产乱码久久久1区 | 欧美一区二区日韩 | 韩国r级大尺度激情做爰外出 | 欧美成人精品高清视频在线观看 | 午夜精品一区二区三区aa毛片 | 97国产超碰 | 精品蜜桃一区二区三区 | 国语自产偷拍精品视频 | 亚州欧美 | 日本人丰满少妇xxxxx | 羞羞影院午夜男女爽爽 | 成人免费无码大片a毛片抽搐色欲 | 日本做床爱全过程激烈视频 | 日韩av无码免费播放 | 影音先锋二区 | 福利视频亚洲 | 国产三级日本三级在线播放 | 97香蕉久久超级碰碰高清版 | 精品国产免费人成网站 | 一级做a爰片性色毛片视频停止 | 亚洲午夜精品久久久 | 国模无码大尺度一区二区三区 | 久久久国产精品无码免费专区 | 182在线视频 | 久久久成人999亚洲区美女 | 白嫩少妇喷水正在播放 | 国产片网址 | 国产大屁股视频免费区 | 亚洲免费视频一区二区 | 色狠狠av北条麻妃 | 日本免费在线 | 亚洲人成无码网站久久99热国产 | 成人福利在线播放 | 欧美综合色区 | 51精品一区二区三区 | 久久成人免费视频 | 九九99视频 | 日本6一12娇小xxxⅹhd | 96亚洲精品久久 | 色综合久久久久久 | 亚洲天堂网在线观看视频 | 精品国产人妻一区二区三区 | 91久久久久久久久久久 | 男人天堂视频在线观看 | 欧洲国产伦久久久久久久 | 女同三级bd高清在线播放 | 三级在线看中文字幕完整版 | 国产一二 | 午夜视频免费在线观看 | 精品国产乱码久久久久夜 | 成人欧美一区二区三区 | 久久毛片视频 | 99热久久免费频精品18 | 西西人体444www大胆无码视频 | 公的~yin之手筱田优中文字幕 | 国产精品熟女人妻 | 手机在线观看av | 国产人妻大战黑人20p | 久久久久国产精品嫩草影院 | 亚洲精品久久一区二区三区 | 成人国产精品免费观看视频 | 野花国产精品入口 | 国产叼嘿视频 | 国产精品久久久久久久久潘金莲 | 青草青草视频2免费观看 | 天堂在线视频免费 | 可以在线观看的av | 91人人爽人人爽人人精88v | 少妇人妻偷人精品无码视频新浪 | 99精品国产综合久久久久五月天 | 亚洲欧美婷婷 | 亚洲无限观看 | www.色人阁.com | 亚洲国产精品福利片在线观看 | 老头把女人躁得呻吟 | 久久亚洲精中文字幕冲田杏梨 | 国产日产精品一区二区三区四区的观看方式 | 亚洲一区二区三区影视 | 4hu亚洲人成人无码网www电影首页 | caoporn国产精品免费公开 | 亚洲视频一二区 | 国产色网站 | 精品国偷自产在线 | 狠狠色噜噜狠狠狠狠米奇7777 | 人人妻人人做人人爽 | 一本久在线 | 久久久xxxx| 国产污视频在线 | 久久综合色视频 | 亚洲国产精品福利片在线观看 | 自拍偷自拍亚洲精品播放 | 日韩精品精品 | 久久精品视频9 | 国产成人精品一区二区三区在线 | 精品av综合导航 | 日韩一区二区三区视频在线观看 | 欧洲lv尺码大精品久久久 | 国产高清视频在线免费观看 | 国产一区视频在线观看免费 | 成人欧美一区二区三区动漫 | 91国内揄拍国内精品对白 | 精品综合久久久久 | 黄色毛片在线观看 | 成人h动漫精品一区二区原神 | 久久久婷婷五月亚洲97号色 | 中文字幕免费高清网站 | 17c在线| 亚洲欲妇 | 久久精品亚洲精品国产欧美kt∨ | 国产做a爰片久久毛片a片美国 | av网站免费在线播放 | 他揉捏她两乳不停呻吟在线播放 | 精品国产一区二区三区久久久蜜臀 | 国产日韩一区二区在线观看 | 97这里只有精品 | 在线免费h | 久久免费视频精品 | 日韩精品在线一区二区 | 国内福利视频 | 97国产精品亚洲精品 | 美女网站在线永久免费观看 | 蜜桃综合网 | 中国人与拘一级毛片 | 色噜噜狠狠狠综合曰曰曰88av | 四虎影在永久在线观看 | 91久久国产婷婷一区二区 | 久久丁香| 狠狠色狠狠色综合日日小说 | 国产精品久久久久久妇女6080 | 欧美在线视频网站 | 三级黄色在线播放 | 欧洲极品少妇 | 国产精品久久久一区二区三区 | 天堂中文在线视频 | 亚洲国产午夜精品理论片在线播放 | 天干天干天啪啪夜爽爽99 | 欧美黑人一级爽快片淫片高清 | 爽爽淫人| 国产福利视频一区 | 午夜小视频在线观看 | 亚洲国产精品第一区二区 | 久久久水蜜桃 | 免费的黄色的视频 | 欧美日韩亚洲另类 | 97国产高清dvd | wwwxx国产| 97伊人| 成人午夜在线 | 黑白配高清在线观看免费版中文 | 91老色批| 最新国产精品自拍 | 久久美女av| 超碰在线免费观看97 | 日日橹狠狠爱欧美视频 | 日本一区二区三区爆乳 | 成人在线免费小视频 | 在线亚洲高清揄拍自拍一品区 | 午夜精品久久久 | 99久久精品国产一区二区成人 | 成人在线视频免费看 | 中文字幕亚洲无线码在线一区 | 久久久国产一区二区三区四区小说 | 日日干日日干 | 成人av网址大全 | 欧美激情精品久久久久久变态 | 精品国产乱码久久久久久蜜臀网站 | 九九99久久精品在免费线bt | 大地资源影视在线播放观看高清视频 | 爱吃波客今天最新视频 | 中文字幕人妻无码视频 | 久久99精品九九九久久婷婷 | 欧美日韩一区二区综合 | 免费毛片在线播放免费 | 婷婷日| 亚洲精品粉嫩美女一区 | 亚洲一二三区不卡 | av片免费看 | 警花系列乱肉辣文小说 | 9l视频自拍九色9l视频视频 | 无码福利一区二区三区 | 国产激情在线视频 | 成人亚洲欧美成αⅴ人在线观看 | 特级做a爰片毛片免费看 | 日本一级视频 | 国产午夜在线观看 | 天堂一区人妻无码 | 国产 日韩 欧美在线 | 亚洲 日本 欧美 中文幕 | 国产黄色大片网站 | 亚洲免费视频一区二区 | 少妇饥渴偷公乱第32章 | 欧美三级久久 | 日本打白嫩屁股视频 | 国产深夜男女无套内射 | 99国产在线播放 | 欧美日韩一区免费 | 久久99精品久久久秒播软件优势 | 专干老肥女人88av | 日本美女黄色一级片 | 特级淫片aaaaaaa级附近的 | 四虎一区二区三区 | 国产私拍大尺度在线视频 | 欧美午夜理伦三级在线观看 | 欧美3p两根一起进高清免费视频 | 男人天堂怡红院 | 久久久久亚洲精品中文字幕 | 国产精品伦视频 | 久久91精品国产91久久跳 | 欧美性xxxxx极品娇小 | 最近的中文字幕在线看视频 | 久久人人爽人人爽人人片 | 一个人在线观看免费视频www | 日韩在线中文字幕视频 | 台湾亚洲精品一区二区tv | 激情婷婷六月天 | 欧美人与禽2o2o性论交 | 强制中出し~大桥未久在线a | 艳妇荡乳豪妇荡乳av精东 | 精品国产99久久久久久 | 污污视频网站在线免费观看 | 日日夜夜狠狠 | 亚洲老女人av | 婷婷激情五月 | 亚洲精选av | 少妇高潮av久久久久久 | 亚洲中文字幕无码av | 亚洲人成影院在线无码按摩店 | 夜夜爽久久揉揉一区 | 又大又黄又爽视频一区二区 | 丁香五月亚洲综合在线 | 91视频在线免费观看 | 麻豆精品一区综合av在线 | 国产精品另类激情久久久免费 | 国产麻豆一级片 | 国产a做爰全过程片 | 久久狼人亚洲精品一区 | 亚洲毛片在线观看 | 白丝一区| 亚洲国精产品一二二线 | av在观看 | 日韩免费视频一区 | 精品久久久久香蕉网 | 国产九一精品 | 国产成人精品一区二三区 | 成人欧美一区二区三区黑人麻豆 | 成 人 色 网 站免费观看 | 欧美人与禽猛交乱配 | 黄色毛片在线 | 国产精品亚洲二区在线观看 | 亚洲精品久久久久久久蜜桃 | 长河落日电视连续剧免费观看01 | 日韩一区二区三区视频在线 | 91精品国产综合久久久蜜臀图片 | 鲁丝一区二区三区免费 | 未满十八18禁止免费无码网站 | 国产日韩在线一区 | 精品国产一级 | 欧美亚洲另类在线 | 精品人妻中文字幕有码在线 | 国产一级啪啪 | 国语精品久久 | 91成人免费网站 | 国产在线高清理伦片a | 天天摸夜夜添狠狠添婷婷 | 国产精品第一区 | 亚洲美女久久 | 免费视频拗女稀缺一区二区 | 欧美激情精品久久久久久变态 | 欧美午夜精品 | 九色视频网址 | 在线播放无码字幕亚洲 | 五月婷婷视频在线观看 | 国产精品久久久久蜜臀 | 四虎国产精品成人免费4hu | 成人午夜网址 | 久久99精品国产麻豆91樱花 | 中文字幕在线观看 | 图书馆的女友在线观看 | 久久精品中文字幕一区二区三区 | 日韩av不卡在线播放 | 日本三级韩国三级三级a级中文 | 波多野结衣中文字幕一区二区三区 | 日韩欧美不卡在线 | 五月天国色天香国语版 | 内射中出日韩无国产剧情 | www黄色网 | 亚洲国产成人91精品 | 久久久久久国产精品 | 国产91我把她日出白浆 | 免费观看黄色一级视频 | 手机成人免费视频 | 天堂欧美城网站 | 国内大量揄拍人妻精品視頻 | 国产精品午夜在线 | 男女做爰猛烈吃奶啪啪喷水网站 | 欧美激情免费观看 | 免费看日产一区二区三区 | 一区二区视频网站 | 少妇呻吟白浆高潮啪啪69 | 亚洲精品毛片av | 亚洲开心网 | 国产精品乱码一区二区三区视频 | 亚洲产国偷v产偷v自拍色戒 | 欧美在线a| 人妻系列无码专区久久五月天 | 国产成人无码精品久久久性色 | 欧美大片免费观看在线观看网站推荐 | 全国最大的成人网 | 国产精品一区二区欧美 | 99精品热视频 | 国产精品久久久久久久久久软件 | 尤物视频在线观看免费 | 亚洲成色www久久网站瘦与人 | 新婚之夜疯狂做爰视频一区二区 | 夜夜爽久久揉揉一区 | 色一情一区二 | 国产日产欧产美一二三区 | 和漂亮岳做爰3中文字幕 | 国产私拍| 搐搐国产丨区2区精品av | 在线无码av一区二区三区 | 国产精品99久久久久 | 综合精品欧美日韩国产在线 | 女人裸体特黄做爰的视频 | 久久国产精品二区 | 天天干,夜夜操 | 国产一区二区三区在线观看 | 午夜精品久久久久 | 欧洲一级片 | 亚洲精品午夜精品 | 国产免费av网址 | 日韩小视频网站 | 裸身美女无遮挡永久免费视频 | 精品人妻一区二区三区四区在线 | 黄色免费的视频 | 中文字幕女同女同女同 | 亚洲xxxxx高清 | 欧美一区 | 无码东京热一区二区三区 | 日韩欧美在线一区二区三区 | 日韩成av人片在线观看 | 国产精品嫩草影院精东 | 日本黄大片在线观看 | 性久久久久久 | 久久精品视频在线 | 亚洲不卡免费视频 | 日本va欧美va国产激情 | 精品国产视频 | 日韩成人午夜影院 | 婷婷色怡春院 | 国产99久久久久久免费看农村 | 九九re6热在线视频精品66 | 少妇太爽了在线观看 | 国产免费一区二区三区免费视频 | 91黑丝美女 | 国产福利在线视频观看 | 亚洲精品一区二区久 | 亚洲免费在线视频观看 | 亚洲伦理99热久久 | 国产乱妇4p交换乱免费视频 | 国产又黄又爽刺激的视频 | 老牛嫩草一区二区三区眼镜 | 欧美大片高清免费观看 | 日韩 在线 中文 制服一区 | 久久福利网 | 久青草国产在视频在线观看 | 国产丶欧美丶日本不卡视频 | 中文字幕一区二区三区四区不卡 | 国产在线精品一区二区不卡麻豆 | 国产一区二区三区网站 | 成人aaa片一区国产精品 | 欧美激情一区二区三区 | 18禁高潮出水呻吟娇喘蜜芽 | 国产精品theporn88 | 肥老熟妇伦子伦456视频 | 国产区精品一区二区不卡中文 | 亚洲天码中字一区 | 97精品| 麻豆成人久久精品二区三区小说 | 国产欧美久久久 | 亚洲热妇无码av在线播放 | 日日碰狠狠添天天爽超碰97久久 | 国产免费色视频 | 精品国产乱码久久久久久移动网络 | 99亚洲一区| 99国产精品久久不卡毛片 | 欧洲亚洲一区二区三区四区五区 | 羞羞软件 | 91伊人| 成人国产一区二区三区精品麻豆 | 中文国产在线观看 | 特黄 做受又硬又粗又大视频 | 18禁免费无码无遮挡不卡网站 | 天天宗合| 欧洲熟妇色xxxx欧美老妇多毛网站 | 久久久久久av无码免费看大片 | 怡红院精品视频 | 成人污污www网站免费丝瓜 | 91在线看视频免费 | 国产区久久 |