美文网首页
【学习】正则表达式学习

【学习】正则表达式学习

作者: papi_k的小茅屋 | 来源:发表于2024-03-08 21:53 被阅读0次

    什么是正则表达式

    正则表达式(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!

    相关文章

      网友评论

          本文标题:【学习】正则表达式学习

          本文链接:https://www.haomeiwen.com/subject/yyxyzdtx.html