利用正则表达式完成下面的操作:
一、不定项选择题
-
能够完全匹配字符串"(010)-62661617"和字符串"01062661617"的正则表达式包括( )
A.
r"\(?\d{3}\)?-?\d{8}"
B.r"[0-9()-]+"
C.r"[0-9(-)]*\d*"
D.r"[(]?\d*[)-]*\d*"
解析:答案A,B,D
- 能够完全匹配字符串"back"和"back-end"的正则表达式包括( )
A.r'\w{4}-\w{3}|\w{4}'
B.r'\w{4}|\w{4}-\w{3}'
C.r'\S+-\S+|\S+'
D.r'\w*\b-\b\w*|\w*'
解析:A,B,C,D
- 能够完全匹配字符串"go go"和"kitty kitty",但不能完全匹配“go kitty”的正则表达式包括()
A.r'\b(\w+)\b\s+\1\b'
B.r'\w{2,5}\s*\1'
C.r'(\S+) \s+\1'
D.r'(\S{2,5})\s{1,}\1'
解析:A,D
- 能够在字符串中匹配"aab",而不能匹配"aaab"和"aaaab"的正则表达式包括( )
A.r"a*?b"
B.r"a{,2}b"
C.r"aa??b"
D.r"aaa??b"
解析:B,C
二、编程题
1.用户名匹配
要求: 1.用户名只能包含数字 字母 下划线
2.不能以数字开头
3.⻓度在 6 到 16 位范围内
from re import fullmatch, findall
user_name = input('请输入您的用户名:')
result = fullmatch(r'[a-zA-Z_][a-zA-Z_\d]{5,15}'