ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

regex101 1-9关 通关笔记

2021-08-27 18:01:12  阅读:427  来源: 互联网

标签:知识点 task 匹配 regex101 Za 笔记 25 z0 通关


task 1 : word boundaries(单词边界)

image
要求匹配 word 这个独个的单词。 /\bword\b/i

知识点

  • 忽略大小写 /i (insensitive)
  • 单词边界 \b 为边界 , \B 不为边界
    \B 在不消耗\w的情况下匹配\w
    image
    \b 在不消耗任何字符的情况下,立即被\w匹配的字符和不被\w匹配的字符匹配(按任何顺序)。它不能用来区分非词和词。
    image

task 2 : capitalizing i (大写字母i)

image
要求把 所有 的 单个的 i 变成 大写 I /\bi\b/I/g

知识点

  • 全部匹配而不是 只匹配一次 /g

task 3 : uppercase consonants (大写的辅音)

image
要求匹配大写的辅音字母
我的解法:/[B-DF-HJ-NP-TV-Z]/g 别人的解法:/[^AEIOUa-z_\W\d]/g

知识点

  • 字符分类
    image

task 4 : retrieve numbers (检索数据)

image
要求匹配 int 型 数字
我的第一次解法 /\D?\d+\D?/g 第二次 /\d+/g
知识点
贪婪与非贪婪,匹配个数
a? 零个或一个a
a* 零个或多个a
a+ 一个或以上a
a{3} 3个a
a{3,} 3个a以上
a{3,6} 3到6个a
a* 贪婪模式
a*? 懒惰模式
a*+ 侵占模式

task 5 : whitespace (空格)

image
配置4个以上的空格
我的第一次结果/[[:space:]]{4,}/g 我的第二次结果/\s{4,}/g

知识点

空白字符 \s[[:space:]]
匹配个数 a{4,} 4或更多个a

task 6 : broken keyboard (击毁键盘)

image
这关是说他按下一个键,有时候会被重复两次,但有时候不会,你需要把重复的那两次去掉。
我的答案 s/(.)\1\1/$1/g

知识点

\1 匹配时引用第一组
$1 替换时引用第一组

task 7 : validate an ip

image
大佬的答案 (?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\.(?!$)|$)){4}解释一下:匹配组重复4次:0-255的数字 + (.和不是结尾)|(结尾) 77分

我不会,百度一点后自己的解决方案 /^(?:(?:25[0-5]|2[0-4]\d|[0-1]?\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|[0-1]?\d{1,2})$/g 82分
然后按照大佬的规则稍微改进一下:/^(?:(?:25[0-5]|2[0-4]\d|[0-1]?\d{1,2})(?:\.(?!$)|$)){4}$/g 59分
最低的是 39分

知识点

| 0-199 | 200-255
121.005.154.138 是不是正规ip
image
(?:xxxx) 不要分配 gorup 号

Task 8: HTML Tags (optional) (HTML标签 任选)

image
从字符串中去掉所有HTML标记。有些可能会换行且不完整 例如 body>xxxx</body
<.*> 太贪婪了,匹配到<div>foo</div>
我的答案是s/<[^<>]*>|[^<]*>|<[^<]*/g
我好菜 啊。

Task 9: Match an E-Mail (Simplified) (optional) (匹配邮件 简化 可选)

image
我的解法:/^([A-Za-z0-9!#$%&'*+\-\/=?^_{|}]+|[A-Za-z0-9!#$%&'*+-/=?^_`{|}~]+.[A-Za-z0-9!#$%&'*+-/=?^_`{|}]+)@(([A-Za-z0-9]+|[A-Za-z0-9]+-+[A-Za-z0-9]+).)+([a-z]){2,6}$/gi`

标签:知识点,task,匹配,regex101,Za,笔记,25,z0,通关
来源: https://www.cnblogs.com/sanqiushu/p/15194797.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有