国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python全棧之正則表達式

Python全棧之正則表達式

2022-03-10 00:28熬夜泡枸杞 Python

這篇文章主要為大家介紹了Python正則表達式,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1. 正則表達式_匹配單個字符

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# ### 正則表達式 - 匹配單個字符
import re
"""lst = re.findall(正則表達式,字符串)"""
# (1) 預(yù)定義字符集
# \d 匹配數(shù)字
strvar = "sdjfklj234&*(&1"
lst = re.findall("\d",strvar)
print(lst)
# \D 匹配非數(shù)字
strvar = "YWERsdf78_&"
lst = re.findall("\D",strvar)
print(lst)
# \w 匹配字母或數(shù)字或下劃線     (正則函數(shù)中,支持中文的匹配)
strvar = "sadf234_^&*%$^$%你好"
lst = re.findall("\w",strvar)
print(lst)
# \W 匹配非字母或數(shù)字或下劃線
strvar = "sadf234_^&*%$^$%你好"
lst = re.findall("\W",strvar)
print(lst)
# \s 匹配任意的空白符 ( " "  \t  \n \r )
strvar = "       \r "
lst = re.findall("\s",strvar)
print(lst)
# \S 匹配任意非空白符
strvar = "       \r  123_*("
lst = re.findall("\S",strvar)
print(lst)
# \n 匹配一個換行符
strvar = """
今天國慶假期結(jié)束了,兄弟們滿載 而歸,玩的   很困,盡    快調(diào)  整.
"""
lst = re.findall(r"\n",strvar)
print(lst)
# \t 匹配一個制表符
lst = re.findall(r"\t",strvar)
print(lst)
# (2) 字符組 [] 匹配出字符組當(dāng)中列舉的字符(默認選一個)
# lst = re.findall("[123]","a1b2c3d4")
# print(lst)
print(re.findall('a[abc]b','aab abb acb adb')) # aab abb acb
print(re.findall('a[0123456789]b','a1b a2b a3b acb ayb')) # a1b  a2b a3b
# 優(yōu)化寫法 0123456789  => 0-9
print(re.findall('a[0-9]b','a1b a2b a3b acb ayb'))
print(re.findall('a[abcdefg]b','a1b a2b a3b acb ayb adb')) # acb adb
# 優(yōu)化寫法 abcdefg => a-g  表達所有的小寫字母 a-z
print(re.findall('a[a-g]b','a1b a2b a3b acb ayb adb'))
print(re.findall('a[a-z]b','a1b a2b a3b acb ayb adb')) # acb adb ayb
print(re.findall('a[ABCDEFG]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb
# 優(yōu)化寫法 ABCDEFG => A-G  表達所有的大寫字母 A-Z
print(re.findall('a[A-G]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb
print(re.findall('a[A-Z]b','a1b a2b a3b  aAb aDb aYb')) # aAb aDb aYb
# 注意點: 不能直接寫A-z  中間ascii編碼中包含了特殊的符號
print(re.findall('a[A-z]b','a1b a2b a3b acb ayb adb a[b'))
# 匹配所有的字母和數(shù)字
print(re.findall('a[a-zA-Z0-9]b','a1b a2b a3b acb ayb adb a[b'))
print(re.findall('a[0-9a-zA-Z]b','a-b aab aAb aWb aqba1b'))  #aab aAb aWb aqb a1b
print(re.findall('a[0-9][*#/]b','a1/b a2b a29b a56b a456b')) # a1/b
# ^ 在字符組開頭的位置出現(xiàn)代表 除了...的意思
print(re.findall('a[^-+*/]b',"a%b ccaa*bda&bd")) #a%b a&b
# 匹配^-\等特殊字符時 ,需要前面加上\進行轉(zhuǎn)義
strvar = "a^c a-c a\c"
lst = re.findall(r"a[\^\-\\]c",strvar)
print(lst)
print(lst[-1])
# 注意點:為了防止轉(zhuǎn)義,在正則表達式中或者要匹配的字符串中,無腦加r實現(xiàn)匹配
strvar = r"a\b"
lst = re.findall(r"a\\b",strvar)
print(lst[0])

2. 正則表達式_匹配多個字符

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# ### 正則表達式 - 匹配多個字符
# (1) 量詞
import re
'''1) ? 匹配0個或者1個a '''
print(re.findall('a?b','abbzab abb aab'))   #  ab b  ab ab b ab
'''2) + 匹配1個或者多個a '''
print(re.findall('a+b','b ab aaaaaab abb')) # ab aaaaaab ab
'''3) * 匹配0個或者多個a '''
print(re.findall('a*b','b ab aaaaaab abbbbbbb')) # b ab aaaaaab ab b b b b b b
'''4) {m,n} 匹配m個至n個a '''
# 1 <= a <= 3
print(re.findall('a{1,3}b','aaab ab aab abbb aaz aabb')) #aaab ab aab ab aab
# {2}  代表必須匹配2個a
print(re.findall('a{2}b','aaab ab aab abbb aaz aabb')) # aab aab aab
# {2,} 代表至少匹配2個a
print(re.findall('a{2,}b','aaab ab aab abbb aaz aabb')) # aaab aab aab
# (2) 貪婪匹配 和 非貪婪匹配
"""
貪婪匹配  : 默認向更多次匹配  (回溯算法)
非貪婪匹配: 默認向更少次匹配  (配合?號使用)   
回溯算法 : 從左向右進行匹配,直到找到最后一個,再也沒有了,回頭,返回上一個找到的內(nèi)容
. 除了\n,匹配所有字符
非貪婪寫法: 量詞 + ?
"""
# 貪婪匹配(模式)
strvar = "劉能和劉老根和劉羅鍋111子222子"
lst = re.findall("劉.",strvar)
print(lst) # lst = re.findall("劉.?",strvar)
lst = re.findall("劉.?",strvar)
print(lst) # lst = re.findall("劉.?",strvar)
lst = re.findall("劉.+",strvar)
print(lst) # ['劉能和劉老根和劉羅鍋111子222子']
lst = re.findall("劉.*",strvar)
print(lst) # ['劉能和劉老根和劉羅鍋111子222子']
lst = re.findall("劉.{1,20}",strvar)
print(lst) # ['劉能和劉老根和劉羅鍋111子222子']
lst = re.findall("劉.*子",strvar)
print(lst)
# 非貪婪匹配(模式)
lst = re.findall("劉.??",strvar)
print(lst) # ['劉', '劉', '劉']
lst = re.findall("劉.+?",strvar)
print(lst) # 劉能 劉老 劉羅
lst = re.findall("劉.*?",strvar)
print(lst) # ['劉', '劉', '劉']
lst = re.findall("劉.{1,20}?",strvar)
print(lst) # ['劉能', '劉老', '劉羅']
lst = re.findall("劉.*?子",strvar)
print(lst)
# (3) 邊界符
"""
\b 本身是轉(zhuǎn)義字符 退格,退到光標(biāo)上一位
\b 在正則中還有邊界符的意思
"word"
卡主左邊界:\bw
卡主右邊界:d\b
"""
strvar = "word old fuck"
# 右邊界
lst = re.findall(r"d\b",strvar) # ['d', 'd']
lst = re.findall(r".*d\b",strvar) # ['word old']
lst = re.findall(r".*?d\b",strvar) # ['word old']
print(lst)
# 左邊界
lst = re.findall(r"\bw",strvar)
lst = re.findall(r"\bw.*",strvar)
lst = re.findall(r"\bw.*?",strvar)
lst = re.findall(r"\bw.*? ",strvar) # 空格在正則表達式中,不能隨意加,是參與匹配的.
lst = re.findall(r"\bw\S*",strvar)
print(lst)
# (4) ^ $的使用
"""
^ 寫在在字符串的開頭,表達必須以某個字符開頭
$ 寫在在字符串的結(jié)尾,表達必須以某個字符結(jié)尾
當(dāng)使用了^ $ 代表要把該字符串看成一個整體
"""
strvar = "大哥大嫂大爺"
print(re.findall('大.',strvar))  # ['大哥', '大嫂', '大爺']
print(re.findall('^大.',strvar)) # ['大哥']
print(re.findall('大.$',strvar)) # ['大爺']
print(re.findall('^大.$',strvar))# []
print(re.findall('^大.*?$',strvar))   # ['大哥大嫂大爺']
print(re.findall('^大.*?大$',strvar)) # []
print(re.findall('^大.*?爺$',strvar)) # ['大哥大嫂大爺']
print(re.findall('^g.*? ' , 'giveme 1gfive gay')) # giveme
print(re.findall('five$' , 'aassfive')) # [five]
print(re.findall('^giveme$' , 'giveme')) # ['giveme']
print(re.findall('^giveme$' , 'giveme giveme')) # []
print(re.findall('giveme' , 'giveme giveme')) # ['giveme', 'giveme']
print(re.findall("^g.*e",'giveme 1gfive gay')) # ['giveme 1gfive']

3. 正則表達式_匹配分組

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# ### 匹配分組 ()表達整體
import re
# (1)分組
print(re.findall('.*?_good','wusir_good alex_good secret男_good'))
print(re.findall('(.*?)_good','wusir_good alex_good secret男_good'))
# (?:) 代表不優(yōu)先顯示分組里面的內(nèi)容,只是顯示正常匹配到的內(nèi)容
print(re.findall('(?:.*?)_good','wusir_good alex_good secret男_good'))
# (2) | 代表或 , a|b 匹配字符a 或者 匹配字符b .
strvar = "abceab"
lst = re.findall("a|b",strvar)
print(lst)
# 注意點:把不容易匹配到的內(nèi)容放到前面,把容易匹配到的內(nèi)容放到后面
strvar = "abcdeabc234f"
lst = re.findall("abcd|abc",strvar)
print(lst)
# (3) 練習(xí)
"""
.  可以匹配任意的字符,除了\n
\. 對.進行轉(zhuǎn)義,表達.這個字符本身.
"""
# 匹配小數(shù)
strvar = "3....  ....4  .3 ...3   1.3  9.89  10"
lst = re.findall(r"\d+\.\d+",strvar)
print(lst)
# 匹配小數(shù)和整數(shù)
lst = re.findall(r"\d+\.\d+|\d+",strvar)
print(lst)
# 使用分組改造
'''findall優(yōu)先顯示括號里的內(nèi)容,需要加上?:取消哦優(yōu)先顯示,按照匹配到的內(nèi)容顯示'''
lst = re.findall(r"\d+(?:\.\d+)?",strvar)
print(lst)
# 匹配135或171的手機號
strvar = "13566668888 17366669999 17135178392"
lst = re.findall(r"(?:135|171)\d{8}",strvar)
print(lst)
# 優(yōu)化,只能匹配出一個手機號
strvar = "13566668888"
lst = re.findall(r"^(?:135|171)\d{8}$",strvar)
print(lst)
obj = re.search(r"^(135|171)\d{8}$",strvar)
print(obj)
print(obj.group())
print(obj.groups())
# 匹配www.baidu.com 或者 www.oldboy.com
"""
findall : 從左到右,匹配出所有的內(nèi)容,返回到列表
          問題是,匹配到的字符串和分組的內(nèi)容不能同時顯示;
search  : 從左到右,匹配到一組內(nèi)容就直接返回,返回的是對象
          優(yōu)點是,可以讓匹配到的內(nèi)容和分組里的內(nèi)容同時顯示;
          匹配不到內(nèi)容時,返回的是None
obj.group() : 獲取匹配到的內(nèi)容
obj.groups(): 獲取分組里面的內(nèi)容
"""
# findall
strvar = "www.baidu.com  www.oldboy.com  www.wangwen.com"
lst = re.findall(r"(?:www)\.(?:baidu|oldboy)\.(?:com)",strvar)
print(lst)
# search
strvar = "www.baidu.com  www.oldboy.com  www.wangwen.com"
obj = re.search(r"(www)\.(baidu|oldboy)\.(com)",strvar)
print(obj)
# 獲取匹配到的內(nèi)容
print(obj.group())
# 獲取分組里面的內(nèi)容 (推薦)
print(obj.groups())
# 方法二,可以直接通過下標(biāo)1來獲取分組里面的第一個內(nèi)容;
print(obj.group(1))
print(obj.group(2))
print(obj.group(3))
# search 練習(xí) : 計算"5*6-7/3"結(jié)果  匹配 5*6 或者 7/3
strvar =  "5*6-7/3"
# strvar = "www.baidu.com  www.oldboy.com  www.wangwen.com"
obj = re.search(r"\d+[*/]\d+",strvar)
res1 = obj.group()
print(res1 , type(res1)) # 5*6 <class 'str'>
# 計算結(jié)果
a,b = res1.split("*")
res2 = int(a) * int(b)
print(res2)
# 把30替換回原來的字符串中
strvar = strvar.replace(res1,str(res2))
print(strvar)
# 以此類推 ...

小提示:

?
1
2
3
4
5
6
7
1. 劉.??  最后一個問號是非貪婪模式,不是量詞
word old fuck   w、d、o、d、f、k是邊界
lst = re.findall(r"d\b",strvar) # ['d','d']
lst = refindall(r".*d\b",strvar) # ['word old'] 貪婪匹配,匹配到old之后
會繼續(xù)向后匹配,匹配不到的話,返回前面已經(jīng)匹配到的內(nèi)容
print(lst)
注意: wordoldfuck 這樣不行沒有邊界,r"d\b" 前面無腦加r,因為\b本身有退格的含義,加r讓退格實現(xiàn),從而使正則的邊界的效果生效

4. 小練習(xí)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 1、匹配整數(shù)或者小數(shù)(包括正數(shù)和負數(shù))
# 2、匹配年月日日期 格式 2018-12-31
# 3、匹配qq號 5-12 首字符沒有0
# 4、11位的電話號碼
# 5、長度為8-10位的用戶密碼 : 包含數(shù)字字母下劃線
# 6、匹配驗證碼:4位數(shù)字字母組成的
# 7、匹配郵箱地址 郵箱規(guī)則 123463922@qq.com  123@abc.com.cn
# @之前必須有內(nèi)容且只能是字母,數(shù)字,下劃線(_),減號(-),點(.)
# @符號后面是字母,數(shù)字,減號(-),保留121@qq.com.cn 的可能
# 最后一個點(.)之后必須有內(nèi)容,字母,數(shù)字且長度為大于等于2個字節(jié),小于等于6個字節(jié)
# 8、從類似
# <a>wahaha</a>
# <b>banana</b>
# <h1>qqxing</h1>
# <h1>q</h1>
# 這樣的字符串中,
# 1)匹配出 wahaha,banana,qqxing 內(nèi)容。
# 2)匹配出 a,b,h1這樣的內(nèi)容
# 9、'1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
# 從上面算式中匹配出最內(nèi)層小括號以及小括號內(nèi)的表達式
# 10正則小程序:
"""
    給你字符串 '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))' 計算最后結(jié)果. 
"""

答案:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 1、匹配整數(shù)或者小數(shù)(包括正數(shù)和負數(shù))
[+-]?\d+(\.\d+)?
# 2、匹配年月日日期 格式 2018-12-31
([12]\d{3})-(0?[1-9]|1[0-2])-(0?[1-9]|[12]\d|3[01])      # 0?[1-9]|1\d|2\d|3[01]   => 0?[1-9]|[12]\d|3[01]
# 3、匹配qq號 5-12 首字符沒有0
[1-9]\d{4,11}
# 4、11位的電話號碼
1[356789]\d{9}
# 5、長度為8-10位的用戶密碼 : 包含數(shù)字字母下劃線
\w{8,10}
if "數(shù)字" in strvar and "字母" in strvar and "_" in strvar:
    return ok
else :
    return "格式不對"
# 6、匹配驗證碼:4位數(shù)字字母組成的
[0-9a-zA-Z]{4}
# 7、匹配郵箱地址 郵箱規(guī)則 123463922@qq.com  123@abc.com.cn
# @之前必須有內(nèi)容且只能是字母,數(shù)字,下劃線(_),減號(-),點(.)
[\w\-\.]+
# @符號后面是字母,數(shù)字,減號(-),保留121@qq.com.cn 的可能
@[a-zA-Z\d\-]+(\.[a-zA-Z\d\-]+)?
# 最后一個點(.)之后必須有內(nèi)容,字母,數(shù)字且長度為大于等于2個字節(jié),小于等于6個字節(jié)
\.[a-zA-Z\d]{2,6}
#綜合:
[\w\-\.]+@[a-zA-Z\d\-]+(\.[a-zA-Z\d\-]+)?\.[a-zA-Z\d]{2,6}
# 8、從類似
# <a>wahaha</a>
# <b>banana</b>
# <h1>qqxing</h1>
# <h1>q</h1>
# 這樣的字符串中,
# 1)匹配出 wahaha,banana,qqxing 內(nèi)容。
<.*?>(.*?)<.*?>
# 2)匹配出 a,b,h1這樣的內(nèi)容
<(.*?)>.*?<.*?>
# 9、'1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
# 從上面算式中匹配出最內(nèi)層小括號的表達式
import re
strvar = '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
obj = re.search(r"\([^\(\)]+\)",strvar)
print(obj.group())
# 10正則小程序:
"""
    給你字符串 '1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))' 計算最后結(jié)果. 
"""
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import re
strvar = '1-2*((60-30+-8*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))'
# 外面有括號,里面再也沒有括號的的表達式就是最里層表達式;
# obj = re.search(r"\([^\(\)]+\)",strvar)
# print(obj.group())
# strvar = '1-2*(-5-6/-2*2)+(40 -  7)'
# 去除多余的符號
def operate_sign(strvar):
    strvar = strvar.replace("--","+")
    strvar = strvar.replace("++","+")
    strvar = strvar.replace("-+","-")
    strvar = strvar.replace("+-","-")
    return strvar
# 計算表達式的值
def calc_res(strvar):
    if "/" in strvar:
        a,b = strvar.split("/")
        return float(a) / float(b)
    elif "*" in strvar:
        a,b = strvar.split("*")
        return float(a) * float(b)
# 匹配計算出對應(yīng)的表達式
def calc_exp(strvar):
    print(strvar , "strvar ... ") # (-5-6/-2*2)
    # ### part1 只計算乘除
    while True:
        # 1.寫一條正則匹配出乘除
        obj = re.search(r"\d+(\.\d+)?[*/][+-]?\d+(\.\d+)?",strvar)
        if obj:
            # 2.匹配出乘除表達式
            res1 = obj.group()
            print(res1 , "res1 ... ") # 6/-2 res1 ...
            # 2.計算當(dāng)前表達式的結(jié)果
            res2 = calc_res(res1)
            print(res2 , "res2 .. "# -3.0 res2 ..
            # 3.用結(jié)果替換原乘除表達式
            strvar = strvar.replace(res1,str(res2))
            print(strvar , "strvar ... 1111") # (-5--3.0*2) strvar ... 1111
        else:
            break
    # ### part2 只計算加減
    # 把表達式當(dāng)中多余的符號做一個替換
    strvar = operate_sign(strvar)
    print(strvar,"2222")   
    # 計算這個表達式+-結(jié)果
    lst = re.findall("[+-]?\d+(?:\.\d+)?",strvar)
    # print(lst)
    # 計算累加和
    total = 0
    for i in lst:
        total += float(i)
    return total
# 去除括號
def remove_bracket(strvar):
    while True:
        obj = re.search(r"\([^\(\)]+\)",strvar)
        # print(obj)
        if obj:
            # 匹配括號里面的表達式
            res1 = obj.group()
            print(res1 , "res1 ... ... ..  ") # (-5-6/-2*2) res1 ... ... .. 
            # 計算括號里面的表達式
            res2 = calc_exp(res1)  
            print(res2,"res2 ... remove_bracket") # 1.0
            # 用計算的結(jié)果替換原來的括號
            strvar = strvar.replace(res1,str(res2))
        else:
            return strvar
        # print(strvar," strvar ... remove_bracket")
# 主函數(shù)統(tǒng)一調(diào)用
def main(strvar):
    # 0.先去掉字符串當(dāng)中出現(xiàn)的空格
    # 1.通過正則匹配到最里層小括號
    # 2.計算括號里面的數(shù)值
    # 3.拿算好的數(shù)值替換原來的小括號
    # 4.循環(huán)在去匹配下一個小括號,依次類推 ...
    # 先去掉字符串當(dāng)中出現(xiàn)的空格
    strvar = strvar.replace(" ","")
    print(strvar)
    # 移除表達式中的所有括號
    res = remove_bracket(strvar)
    print(res , "res   main ...")
    # 計算最后一次沒有括號的那個表達式的結(jié)果
    return calc_exp(res)
res = main(strvar)
print(res)
# print(eval(strvar))

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!

原文鏈接:https://blog.csdn.net/weixin_46818279/article/details/121308288

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久一区| 亚洲欧美一区二区三区久久 | baoyu123成人免费看视频 | 久久综合电影 | 美女久久| 久操成人 | 国产日韩一区二区 | 国产99久久精品一区二区永久免费 | 成人在线视频网址 | 欧美日韩精品免费 | 欧美中文字幕一区二区三区亚洲 | 欧美成人免费视频 | 中文字幕久久久 | 亚洲成av人片在线观看无码 | 日韩三级电影网 | 欧美一区二区三区四区不卡 | 国产精品久久久久久久久久久久久久 | 在线国v免费看 | 久久久久香蕉视频 | 成人国产精品久久久 | 日韩美一级| 欧美精品1区2区 | 日韩和的一区二在线 | 黄色av网站在线观看 | 99久久精品国产毛片 | 日本欧美在线观看 | 日韩在线视频观看 | 免费观看av | 中文av字幕 | 欧美自拍视频 | 欧美日韩中文字幕在线 | 国产精品无码久久久久 | 欧美一区二区三区在线观看 | 国产精品久久久久久久久久久久久久 | 欧美激情视频一区二区三区在线播放 | 免费啪啪av乱一区 | 精品久久久久久久久久久久 | 久久91 | 免费毛片在线 | 成人激情视频 | 国产成人精品久久 |