当前位置: 首页 > news >正文

[WeChall] Training: Regex (Training, Regex) 的答案

前言

如果下面的看不懂。那么就需要学习下基本知识:正则表达式30分钟入门教程

Level 1

匹配一个空字符串,学习匹配匹配字符串开头结尾的两个符号:/^$/

^ 匹配字符串的开始

$ 匹配字符串的结束

Level 2

匹配”wechall”,/^wechall$/

Level 3

匹配以wechallwechall4为文件名,并以.jpg/.gif/.tiff/.bmp/.png为后缀的图像,

/^wechall4?\.(?:jpg|gif|tiff|bmp|png)$/
? 重复零次或一次

所以4?表示重复0次或1次4,也就是wechall和wechall4都可以匹配。

\. 转义

使用\来取消.字符的特殊意义,来显示.字符本身

(?:jpg|gif|tiff|bmp|png)\

(?:exp)表示非捕获分组,匹配exp,不捕获匹配的文本,也不给此分组分配组号。

为什么要用(?:exp),而不用(exp)呢?因为直接提交/^wechall4?\.(jpg|gif|tiff|bmp|png)$/会报错:

Your pattern would capture a string, but this is not wanted. Please use a non capturing group.
您的模式将捕获一个字符串,但这是不需要的。请使用非捕获组。

所以需要使用(?:exp)非捕获分组。

至于(?:jpg|gif|tiff|bmp|png)\中的|表示分枝条件

Level 4

捕获文件名,需要对文件名添加捕获分组:

/^(wechall4?)\.(?:jpg|gif|tiff|bmp|png)$/

(wechall4?)用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作。


参考:

Wechall WriteUp - 琪琪的博客 | Qiqi's Blog
WeChall Journal | 陈文青

相关文章:

  • [WeChall] Training: Encodings I (Training, Encoding)
  • VScode 控制台上提示 无法在只读编辑器中输入 的解决
  • VMware虚拟机中 启动Windows XP系统黑屏 的解决
  • C语言 pow函数 undefined reference to `pow‘ 已解决
  • AttributeError: module ‘urllib‘ has no attribute ‘parse‘
  • PHP echo ‘\n‘ 无效 无法不能换行的 一个简单解决方法
  • 解决 PHP7 undefined function mcrypt_module_open
  • C语言报错 Floating point exception 的原因和解决方法
  • [WeChall] Prime Factory (Training, Math) 的解决方法
  • Python3 将一串数字 分开成单个数 得到每位数字的和
  • Encodings: URL (Training, Encoding) 已解
  • spring jpg 404 其他文件类型可以访问
  • lombok 多个构造器
  • in 转 join on
  • @Mapper作用
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Koa2 之文件上传下载
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Spring Cloud中负载均衡器概览
  • vue.js框架原理浅析
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 树莓派 - 使用须知
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ![CDATA[ ]] 是什么东东
  • # Java NIO(一)FileChannel
  • # Panda3d 碰撞检测系统介绍
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #《AI中文版》V3 第 1 章 概述
  • #预处理和函数的对比以及条件编译
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (3)(3.5) 遥测无线电区域条例
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Java)【深基9.例1】选举学生会
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 物件導向與老子思想 (OO)
  • (转)http协议
  • (转)Scala的“=”符号简介
  • (转)创业家杂志:UCWEB天使第一步
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转载)Linux 多线程条件变量同步
  • .“空心村”成因分析及解决对策122344
  • .net 按比例显示图片的缩略图
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • /etc/shadow字段详解
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @html.ActionLink的几种参数格式