当前位置:网站首页>如何在正则表达式里表达可能存在也可能不存在的内容?
如何在正则表达式里表达可能存在也可能不存在的内容?
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次到无限次, 这用于表达不确定空格次数的场合就很合适了.
边栏推荐
- 账务处理程序、记账凭证账务处理程序、汇总记账凭证账务处理程序、科目汇总表账务处理程序、会计信息化概述、信息化环境下会计账务处理的基本要求(此章出1道小题)
- Orasi: 1 vulnhub walkthrough
- Masashi: 1 vulnhub walkthrough
- VIKINGS: 1 vulnhub walkthrough
- Praying: 1 vulnhub walkthrough
- (3) string
- MOMENTUM: 2 vulnhub walkthrough
- 战场:3(双子叶植物)vulnhub走读
- 最简单的FRP内网穿透教程
- The roll call system and array elements find maximum and minimum values for sorting of objects
猜你喜欢
随机推荐
What are the killer super powerful frameworks or libraries or applications for PHP?
vim edit mode
解密:链动2+1的商业模式
cmake安装到指定目录
一次代码审计的笔记(CVE-2018-12613 phpmyadmin文件包含漏洞)
hackmyvm-bunny walkthrough
file contains vulnerabilities
会计账簿、会计账簿概述、会计账簿的启用与登记要求、会计账簿的格式和登记方法
Mysql创建索引
hackmyvm: may walkthrough
ES6 three-dot operator, array method, string extension method
对账、结账、错账更正方法、划线更正法、红字更正法、补充登记法
2. PHP variables, output, EOF, conditional statements
Basic use of v-on, parameter passing, modifiers
How to calculate the distance between two points on the earth (with formula derivation)
(4) Function, Bug, Class and Object, Encapsulation, Inheritance, Polymorphism, Copy
命令执行漏洞
CTF introductory notes ping
MOMENTUM: 2 vulnhub walkthrough
(8) requests, os, sys, re, _thread









