浅谈Linux中的正则表达式和Makefile工程管理文件

注:以下内容均为作者个人见解,若有不正确的地方,还请读者斧正

同时如果对你帮助的话,还请点赞,收藏加关注,你们的支持是我最大的动力!


一、正则表达式

场景描述:比如你现在要写一个程序,其中有一个功能是匹配以一个日志文本中的IP地址。

IP地址:点分式的字符串

192.168.31.1

0.0.0.0

循环

        然后一个字符一个字符的比对

ip_str[0] >= '0'&&ip_str[0] <='9'

这样写就会逻辑很复杂。

正则表达式就是用来描述某种规则字符的表达式,主要用于模糊搜索(查询)

要查找IP地址可以按照规则搜索

分析IP地址的规则:

  • 一共分为四段
  • 每一段至少一个数字至多三个数字
  • 两端中间会有一个点

正则表达式里面字符串中字符分为两类:

  • 普通字符:只代表自己
    • 1 2 a b ...
  • 元字符:不代表自己,有特殊含义(这个含义优先)

    • . * ? + \ ...

注意:元字符想要表示自己本身原来的意思的话,需要用(\)反斜杠进行转义

1.正则表达式中元字符

  • . :表示匹配任意单个字符
    • 示例:

表达式:[123456789] 表示在1~9的字符范围内去匹配一个

可以匹配到:1 2 3 4 5 6 7 8 9

表达式:[13579abcd] 表示在13579abcd的字符范围内去匹配一个

可以匹配到:1 3 5 7 9 a b c d

字符组可以用 - 来表示一个范围

[0123456789] 可以写成 [0-9]

[abcdefghij] 可以写成 [a-j]

其实就是按照ASCII码去列举范围

  • \w :表示匹配字母、数字以及( _ 下划线)

    • 示例:

表达式:\w 表示在0~9、a-z、A-Z、_这些字符范围内去匹配一个

可以匹配到:0-9 a-z A-Z _

  • + :表示匹配一个或多个先前字符或者是模式 (贪婪匹配)
    • 示例:

表达式:\w+ 表示匹配一个或多个字母、数字、_

可以匹配到:1 11 1111 ....

         :12 12222 12315646

        ....

表达式:1+ 表示匹配一个或多个1

可以匹配到:1 11 111 1111 ....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值