1 import random 2 checkcode='' 3 for i in range(4): 4 current=random.randrange(0,4) 5 if current==i: 6 tmp=chr(random.randint(65,90)) 7 else: 8 tmp=random.randint(0,9) 9 checkcode+=str(tmp) 10 print(checkcode)
[DEFAULT]
ServerAliveInterval
=
45
Compression
=
yes
CompressionLevel
=
9
ForwardX11
=
yes
[bitbucket.org]
User
=
hg
[topsecret.server.com]
Port
=
50022
ForwardX11
=
no
import
hashlib
hash
=
hashlib.md5()
hash
.update(
'admin'
)
print
(
hash
.hexdigest())
hash
=
hashlib.sha1()
hash
.update(
'admin'
)
print
(
hash
.hexdigest())
hash
=
hashlib.sha256()
hash
.update(
'admin'
)
print
(
hash
.hexdigest())
hash
=
hashlib.sha384()
hash
.update(
'admin'
)
print
(
hash
.hexdigest())
hash
=
hashlib.sha512()
hash
.update(
'admin'
)
print
(
hash
.hexdigest())
默認匹配除\n以外的任意一個字符,若指定flag DOTALL,則匹配任意字符,包括換行
匹配字符串開頭,若指定flags MULTILINE,這種也能夠匹配上(r
"^a"
,
"\nabc\neee"
,flags
=
re.MULTILINE)
匹配字符串結尾,或e.search(
"foo$"
,
"bfoo\nsdfsf"
,flags
=
re.MULTILINE).group()也能夠
匹配
*
號前的字符
0
次或屢次,re.findall(
"ab*"
,
"cabb3abcbbac"
) 結果爲[
'abb'
,
'ab'
,
'a'
]
匹配前一個字符
1
次或屢次,re.findall(
"ab+"
,
"ab+cd+abb+bba"
) 結果[
'ab'
,
'abb'
]
匹配前一個字符
1
次或
0
次
匹配前一個字符m次
匹配前一個字符n到m次,re.findall(
"ab{1,3}"
,
"abb abc abbcbbb"
) 結果[
'abb'
,
'ab'
,
'abb']
匹配|左或|右的字符,re.search(
"abc|ABC"
,
"ABCBabcCD"
).group() 結果
'ABC'
分組匹配,re.search(
"(abc){2}a(123|456)c"
,
"abcabca456c"
).group() 結果 abcabca456c
只從字符開頭匹配,re.search(
"\Aabc"
,
"alexabc"
) 是匹配不到的
匹配字符結尾,同$
匹配數字
0
-
9
匹配非數字
匹配[A
-
Za
-
z0
-
9
]
匹配非[A
-
Za
-
z0
-
9
]
匹配空白字符、\t、\n、\r , re.search(
"\s+"
,
"ab\tc1\n3"
).group() 結果
'\t'
(?P<name>...)
' #分組匹配 re.search(
"(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})"
,
"371481199306143242"
).groupdict(
"city"
) 結果{
'province'
:
'3714'
,
'city'
:
'81'
,
'birthday'
:
'1993'
}
把全部匹配到的字符放到以列表中的元素返回
以匹配到的字符當作列表分隔符
匹配字符並替換