正規表現-複数の文字に一致


複数文字の一致
文字
さぎょう
*
前の文字に一致して0回または無限回出現し、あってもなくてもよい
+
一致する前の文字は1回または無限回、少なくとも1回発生します.
?
一致する前の文字が0回または1回
{m}
前の文字に一致してm回出現
{m, n}
前の文字に一致するm~n回
例*
1つの文字列の最初の文字はサイズ文字で、後ろはすべて小文字で、これらの小文字はあってもなくてもいいです.
import re

ret = re.match("[A-Z,a-z]*", "g")
print(ret.group())

ret = re.match("[A-Z,a-z]*", "Road")
print(ret.group())

ret = re.match("[A-Z,a-z]*", "Ordinary_Road")
print(ret.group())

#     
# g
# Road
# Ordinary

例+
import re

roads = ["road1", "_road", "3_road", "__road__"]

for road in roads:
    ret = re.match("[a-zA-Z_]+[\w]*", road)
    if ret:
        print("    %s     " % ret.group())
    else:
        print("    %s   " % road)
        
#   :“+”             ,      ,            。

例?
0~99の数字を一致させる
import re


ret = re.match("[1-9]?[0-9]", "0")
print(ret.group())

ret = re.match("[1-9]?\d", "66")
print(ret.group())

ret = re.match("[1-9]?\d", "06")
print(ret.group())

#     
0
66
0

例{m},{m-n}
8~20ビットのパスワードに一致します.大文字と小文字の英字、数字、下線です.
import re

ret = re.match("[a-zA-Z0-9_]{8}", "122f3h435h67")
print(ret.group())

ret = re.match("[a-zA-Z0-9_]{8,20}", "122fdgh435h67")
print(ret.group())