正则表达式学习

本文详细介绍了正则表达式的五种常见用法,包括匹配含有关键词的字符串、手机号码、完整字符串、不以特定关键词开头以及不包含特定关键词的字符串。通过实例演示了如何在实际场景中应用这些正则表达式技巧。
摘要由CSDN通过智能技术生成

符号说明一览

^符号在开头使用时,匹配开头内容。
若在[^0-9]中开头则表示除了0-9的数字

符号说明
.除了换行符以外所有字符
\d匹配任意一个数字字符,等于[0-9]
\D匹配除数字字符以外的任意字符,等价于[^0-9]
\w匹配任意一个字母,数字或下划线字符,等价于[A-Za-z0-9_]
\W匹配非字母、数字、下划线。等价于 ‘[^A-Za-z0-9_]’。
\s匹配任意一个空白字符,包括空格,制表符,换行符等
\S匹配除空白字符之外的任意字符
\b匹配单词边界,即单词字符和非单词字符的交界处
\B匹配非单词边界
*匹配前面的字符0次和多次
+匹配前面的字符一次或多次
?匹配前面的字符0次和1次
|将两个匹配逻辑进行活动运算
{n}匹配前面的字符n次
{n,}匹配前面的字符至少n次
{n,m}匹配前面的字符至少n次,但不超过m次
[abc]匹配字符集中的任意一个字符
[^abc]匹配除字符集中的字符之外的任意字符
^匹配字符串的开头
$匹配字符串的结尾
()分组,将括号内的
/常用分隔符,用于标记正则表达式的开头和结尾
\转义字符,使用\将有特殊作用的字符(元字符,分隔符等)转义为普通字符

实例

实例一 匹配含有某个关键词的字符串

样例为: Info 05/Jan/2023 Warning
Info 06/Jan/2023 Error

正则识别为.*05\/Jan\/2023.*
正则解释: 任意字符数量 + 05\/Jan\/2023. + 任意字符数量

实例二 匹配手机号码

样例:11144445555、22266667777、33388889999
正则表达式:(111|222)\d{8}
正则解释:开头是111或222 + 匹配8个数字字符

实例三 匹配一个完整字符串

样例:[2021-09-23 10:23:45] [INFO] [user login] [user login success]
正则表达式:^\[\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}\] \[(DEBUG|INFO|WARN|ERROR)\] \[.+\] \[.+\]$

正则解释:
1. 开头是[ 四个数字字符 + ’-’两个数字字符 + ‘-’ + 两个数字字符(空格)
\d 匹配任意一个数字字符
2.[开头 里面的数据需要是DEBUG或者INFO或者WARN或者ERROR]
3.匹配两个[] 其中内容为任意内容 $为结尾

正则解析\[、\]表示匹配[]字符,因为[]在正则语法中有特殊含义,因此需要添加转义字符\。
\[\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}\]表示匹配日期和时间
\[(DEBUG|INFO|WARN|ERROR)\]表示匹配各个日志级别。
\[.+\] \[.+\]$表示匹配任意的非空字符串。

实例四 匹配不以某关键词开头的字符串

样例:DEBUG: test debug、INFO: test info
正则表达式:^(?!DEBUG).*

正则解释:^表示开始位置 ?!表示不等于后面标注内容 格式是(?!内容) + 任意数量字符

正则解析:^表示字符串的开始位置,即DEBUG是处于字符串的开头位置。
(?!DEBUG)表示排除包含DEBUG的日志。(?!DEBUG)为正向否定预查,格式为(?!<pattern>),其中<pattern>为需要排除的内容。
.*表示匹配任意字符,直到该行日志结束。

示例五:匹配不包含关键词的字符串

(、为换行)
样例:hello world、INFO、ERROR message、DEBUG、warning log、error INFO、debug detail、info status
正则表达式:^(?!.*(INFO|DEBUG)).*

正则解释:^表示开始位置 识别不等于  任意数量字符+info或者debug+任意数量字符

正则解析:^表示字符串的开始位置,即INFO或DEBUG是处于字符串的开头位置。
(?!.*(INFO|DEBUG))表示排除包含INFO或DEBUG的日志。
.*用于匹配任意字符,直到该行日志结束。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值