当前位置:网站首页>如何在正则表达式里表达可能存在也可能不存在的内容?
如何在正则表达式里表达可能存在也可能不存在的内容?
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次到无限次, 这用于表达不确定空格次数的场合就很合适了.
边栏推荐
猜你喜欢

hackmyvm: again walkthrough

SQL注入(7)

(1) the print () function, escape character, binary and character encoding, variables, data type, the input () function, operator

After Alibaba Cloud sets up domain name resolution redirection, I cannot use Chrome to access it

VIKINGS: 1 vulnhub walkthrough

hackmyvm: kitty walkthrough

Praying: 1 vulnhub walkthrough

A network security guinea pig's learning path - scripting of advanced usage of nmap

The CTF introduction of PHP file contains

The first time to tear the code by hand, how to solve the problem of full arrangement
随机推荐
如何一步一步的:玩转全民拼购!
hackmyvm-hopper预排
c语言用栈实现计算中缀表达式
GreenOptic: 1 vulnhub walkthrough
超级云APP,陪伴您一起成长的软件
Kali install IDEA
cmake安装到指定目录
命令执行漏洞
Alfa: 1 vulnhub walkthrough
v-bind usage: class dynamic binding object array style style and function method
How to log in to Alibaba Cloud server using the admin account
redis未授权访问(4-unacc)
Pycharm packages the project as an exe file
文件上传漏洞
学IT,找工作——移除链表元素
The shooting range that web penetration must play - DVWA shooting range 1 (centos8.2+phpstudy installation environment)
(不重点考)试算平衡的分类
管理会计(对内)指引、管理会计要素及其具体内容(可能考,考前记一下,推荐记一下四个大点即可)、
财产清查概述、 全面清查的情况、局部清查的情况、财产清查的方法、财产清查结果的处理
C language uses stack to calculate infix expressions