什么是正则表达式
正则表达式(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)
】
参考学习链接:
yo peace!
网友评论