【学习】正则表达式学习

2024-03-08  本文已影响0人  papi_k的小茅屋

什么是正则表达式

正则表达式(Regular Expression,简称Regex或者GegExp)是一种文本模式匹配工具,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(\d \w \s等称为"元字符"),提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。

简单说,正则表达式是一种用于模式匹配和搜索文本的工具。

正则表达式的基本格式:

语法格式:/pattern/flags

pattern表示模式flags表示修饰符,pattern模式位于两个斜杠之间。如:/[0-9]+/g

正则表达式常用的模式语法:

常用的模式匹配项

正则表达式常用的修饰符:

常用的修饰符

使用时,要重点关注模式部分的写法,例如使用notepad++中正则表达式的方式搜索时,只需在检索栏输入模式部分的内容即可。

在全局中检索所有出现的数字

题目练习

1. 这句模式匹配的内容是什么?

^\s+(?!return)\w+\s+\w+;$

【解析:

^\s:空格字符开头。

+: 表示匹配1次或多次;相当于找至少1个空格字符开头的字符。

(?!return):(?!x)表示负向向前模式,同上一步连起来^\s+(?!return),表示在空白字符后边不能出现“return”。

\w+:任意个字符。

\s+:匹配至少一个空格。

\w+:任意个字符。

;$:以分号结尾。

例如下代码段示例:

int time;

return time;

可以匹配到“int time”,目的是为找到未初始化的变量。

如果这样写,是否可以达到如上的效果呢?自行思考。

^\s+((?!return)\w)+\s+\w*;$


2. 这句模式匹配的内容又是什么?

[a-zA-Z0-9_]{1,}\* [a-zA-Z0-9_\*]{1,}[,;)]

【解析:

[a-zA-Z0-9_]:字符是字母、数字或下划线。

{1,}:表示匹配数量,1表示1次,逗号表示,至少匹配1次。

\*:表示匹配符号“*”。

[a-zA-Z0-9_\*]:表示匹配数字、字母、下划线、“*”中,任何一个都行。

" ": 这里要匹配一个空格;

{1,}:表示表示匹配数字、字母、下划线、“*”中至少一次;

[,;)]:表示匹配字符“,”、“;”、“)”三种之一。

综上:上边这个字符串的意思是,找到首字符以字母、数字或下划线开头的字符串、然后是字符*、然后是空格、然后是字、字母、下划线、“*”的字符串、最后以“,”、“;”、“)”结尾。

例如下三个示例都可以匹配到,该字符串匹配的目的是寻找可能得未初始化的指针。

int* time,  

int* time; 

(int* time)


参考学习链接:

正则表达式 - 简介

正则表达式 - 语法

正则表达式 - 修饰符(标记)

正则表达式30分钟入门教程


yo peace!

上一篇 下一篇

猜你喜欢

热点阅读