50道正则表达式笔试题参考答案(第1-10题)
各位客官姥爷好,欢迎回来。我们上节留下的50道正则表达式笔试练习题,有不少客官姥爷在后台回复他自己的答案。【嘿嘿,相信肯定也有偷懒没做的(收藏夹里吃灰)。没关系,清风在这里陪您一起做】
一次性做50道,可能对有的客官姥爷来说太多了(啊,50道,这也太多了,我不听我不听)。于是清风打算分成5小节,每小节10小道,希望各位姥爷跟紧清风的脚步。请看前10道:
第1-10题
1. \d,\W,\s,\B,.,*,+,?分别是什么?
\d表示0-9的数字。
\W表示非英文数字下划线的任意字符。
\s表示任意空白字符。
\B表示非单词开始或结尾的位置。
.表示非换行符的任意字符。
*表示匹配前面子表达式0次或多次。
+表示匹配前面子表达式1次或多次。
?表示匹配前面子表达式0次或1次。
2. (?=a),(?<!a),(?<=a),(?!a)分别是什么?
(?=a)表示匹配a前面的字符。
(?<!a)表示匹配前面不是a的字符。
(?<=a)表示匹配a后面的字符。
(?!a)表示匹配后面不是a的字符。
3. 什么是贪婪匹配和懒惰匹配?
贪婪匹配:表示尽可能多的匹配,常见写法是.*
懒惰匹配:也叫非贪婪匹配,表示尽可能少的匹配,常见写法是.*?
4. \d{1,2}*这样的写法对吗?请说明理由。
不正确,这是因为所有限定类元字符后只能紧跟?这个限定类元字符,如果
紧跟其他限定类元字符则会报错。正确的写法是(\d{1,2})*
5. 怎么让正则表达式从字符串的右边开始匹配?
使用$则表示从右边开始匹配,比如\d{2}$表示从右开始匹配两个数字
6、写出验证用户名的正则表达式,用户名只能输入英文、数字和下划线。
^\w+$
7. 写出验证用户名的正则表达式,用户名只能输入汉字、英文、数字和下划线。
^[\w\u4e00-\u9fa5]+$
8. 验证用户密码,长度在6~18 之间,只能包含英文和数字。
^[A-Za-z0-9]{6,18}$
9. 验证用户密码强度,最少6位,至少包括1个大写字母、1个小写字母、1个数字和1个特殊字符。
^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[~ `!@#\$%\^&\*\(\)\_\+\-\=\{\}\[\]\\\|\/\?\.,><;:'"]).{6,}$
10. 匹配QQ号。
^[1-9]\d{4,12}$
以上就是本次的分享,第11-20道参考答案请见下篇。欢迎各位客官姥爷关注我,方便您第一次时间收到资讯!
赞 (0)