当前位置:网站首页>如何在正则表达式里表达可能存在也可能不存在的内容?
如何在正则表达式里表达可能存在也可能不存在的内容?
2022-08-02 03:26:00 【rockage】

开始
- 其实很简单, 在正则里将一些不确定的内容用括号包裹起来,再后面再加一对花括号即可.
- 看例子:
start
1:hello
2:my
3:world
end
start
1:we
3:are
4:champions
end
- 以上这段内容, start 和 end 里包裹了一些东西, 第一个段落里有3行, 编号为:1 2 3, 第二个段落也是3行,但是编号变成了:1 3 4 .
- 也就是说: 编号1 和 3 是确定的, 编号 2在第一段里存在,在第二段中不存在, 编号 4 则相反, 第一段没有, 第二段有.
- 碰到这种不确定的情况,我们就把整个不确定的内容用() 包裹起来,然后在后面加一对花括号, 例如: ( xxx ){0,1} 表示 xxx 这个字符串,有可能出现, 也有可能不出现.
- 接着看我们上面那个例子,我们编一个正则读取每个编号后面的英文单词:
start[\r\n]1:(.+?)[\r\n](2:(.+?)[\r\n]){0,}3:(.+?)[\r\n](4:(.+?)[\r\n]){0,}end
- [\r\n] 代表换行
- (2:(.+?)[\r\n]){0,} 看到了吗, 编号 2 整个用() 括起来了,后面的{0,1} 表示它可能出现0次,也可能出现 1 次, 同样的, 编号 4 也是这么处理的.
- 问题解决!
后记
- 用这种方法你无需担心match值不存在的问题, 比如说第一个段落没有编号4, 但是系统还是会给你返回一个编号为4, 值为 null 的返回值. 这有点类似于"访问一个不存在的数据元素" 和 “访问一个值为空的数组元素” 一样, 前者有可能导致程序报错, 但后者处理起来就容易多了.
- 花括号{} ,是个好工具, 特别在一些不确定的场合, 比如: \s{1,} 表示\s (空格) 有可能出现1次到无限次, 这用于表达不确定空格次数的场合就很合适了.
边栏推荐
- VIKINGS: 1 vulnhub walkthrough
- Kali环境下Frida编写脚本智能提示
- By figure, a (complete code at the end)
- The learning path of a network security mouse - the basic use of nmap
- 17. JS conditional statements and loops, and data type conversion
- After Alibaba Cloud sets up domain name resolution redirection, I cannot use Chrome to access it
- The CTF introduction of PHP file contains
- 命令执行漏洞
- hackmyvm: controller walkthrough
- Introduction to PHP (self-study notes)
猜你喜欢

The CTF introduction of PHP file contains

Eric靶机渗透测试通关全教程

超级云APP,陪伴您一起成长的软件

The CTF introductory notes of SQL injection

Cookie is used to collect the admin privileges CTF foundation problem

CSRF(跨站请求伪造)

重点考:金融资产概述、交易性金融资产的概念、交易性金融资产的账务处理(取得、持有。出售)、

v-bind usage: class dynamic binding object array style style and function method

CSRF (Cross Site Request Forgery)

After Alibaba Cloud sets up domain name resolution redirection, I cannot use Chrome to access it
随机推荐
对账、结账、错账更正方法、划线更正法、红字更正法、补充登记法
ES6 array extension methods map, filter, reduce, fill and array traversal for…in for…of arr.forEach
Shuriken: 1 vulnhub walkthrough
(6) Design of student information management system
PHP deserialization vulnerability
元宇宙:为何互联网大佬纷纷涉足?元宇宙跟NFT是什么关系?
4. PHP array and array sorting
After Alibaba Cloud sets up domain name resolution redirection, I cannot use Chrome to access it
OPENSSL基本实验以及OPENSSL详解
Phonebook
链动2+1模式开发系统
Scrapy爬虫遇见重定向301/302问题解决方法
英语每日打卡
重点考:从债劵的角度来看交易性金融资产
文件上传漏洞
CTF入门之php文件包含
Google Hacking
重点考:金融资产概述、交易性金融资产的概念、交易性金融资产的账务处理(取得、持有。出售)、
【一句话攻略】彻底理解JS中的回调(Callback)函数
云安全笔记:云原生全链路加密