详情页标题前

阿里云日志服务SLS正则表达式入门教程-云淘科技

详情页1

正则表达式是一种强大的文本匹配工具,可以用于在文本中查找特定的模式。本文将提供简单且实用的正则表达式快速上手教程,帮助您快速掌握其基本用法。​

重要

本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

如果您对正则表达式不够熟悉,可以使用Regex101等工具进行练习和调试。这些工具支持直观展示正则表达式和文本的匹配过程。本文以Regex101为例,介绍各个示例。

基本语法

正则表达式由不同类型的字符组成,包括普通字符、元字符、分隔符和转义字符等。其中:

  • 普通字符:用于匹配文本中出现的相同字符。

  • 元字符:用于匹配特定的字符或字符集合。例如.表示匹配任意字符,\d表示匹配数字等。

  • 分隔符:用于标记正则表达式的开始和结束,通常为/或者#

  • 转义字符:使用\将有特殊作用的字符(元字符、分隔符等)转义为普通字符。例如\.表示匹配半角句号。

如下图所示,Regex101工具默认在正则表达式a.\d\.前添加了分隔符/。其中,a表示匹配字母a,.表示匹配一个任意字符,\d表示匹配一个任意数字,\.表示匹配半角句号。阿里云日志服务SLS正则表达式入门教程-云淘科技

下表罗列了常用的特殊字符及其含义。

重要

在不同的编程语言和正则表达式引擎中,支持的符号和语法可能有所差异。在实际编程中,需要结合具体的语言和工具了解其支持的正则表达式语法。

符号

含义

.

匹配任意一个字符,除了换行符。

\d

匹配任意一个数字字符,等价于[0-9]。

\D

匹配除数字字符之外的任意字符,等价于[^0-9]。

\w

匹配任意一个字母、数字或下划线字符,等价于[A-Za-z0-9_]。

\W

匹配除字母、数字和下划线字符之外的任意字符,等价于[^A-Za-z0-9_]。

\s

匹配任意一个空白字符,包括空格、制表符、换行符等。

\S

匹配除空白字符之外的任意字符。

\b

匹配单词边界,即单词字符和非单词字符的交界处。

\B

匹配非单词边界。

*

匹配前面的字符0次或多次。

+

匹配前面的字符1次或多次。

?

匹配前面的字符0次或1次。

|

将两个匹配逻辑进行或运算。

{n}

匹配前面的字符n次。

{n,}

匹配前面的字符至少n次。

{n,m}

匹配前面的字符至少n次,但不超过m次。

[abc]

匹配字符集中的任意一个字符。

[^abc]

匹配除字符集中的字符之外的任意字符。

^

匹配字符串的开头。

$

匹配字符串的结尾。

()

分组,将括号内的一组字符看作一个整体。

/

常用分隔符,用于标记正则表达式的开头和结尾。

\

转义字符,使用\将有特殊作用的字符(元字符、分隔符等)转义为普通字符。

示例

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

筛选出包含关键词05/Jan/2023的日志。

  • 日志样例:Info 05/Jan/2023 Warning、Info 06/Jan/2023 Error

  • 正则表达式:.*05\/Jan\/2023.*

    • .*表示匹配任意零个或多个字符,即05/Jan/2023前后可以有任意字符。

    • 05\/Jan\/2023表示匹配关键词05/Jan/2023

      因为Logtail所支持的正则表达式以/作为分隔符,因此需要使用转义字符\将其转变为普通字符,即需要在/前增加转义字符\

阿里云日志服务SLS正则表达式入门教程-云淘科技

示例二:匹配手机号码

筛选出包含以111或222开头的11位手机号码的日志。

  • 样例:11144445555、22266667777、33388889999

  • 正则表达式:(111|222)\d{8}

    手机号码前三位是运营商号码,中间四位是地区编码,后四位则是任意数字。假设运营商号码只有111和222,地区编码为任意数字。

    • (111|222)表示一个分组,包含了两个可能的值,即111或222。

    • \d表示匹配一个数字。

    • {8}表示前面的\d需要匹配8次,即匹配8个数字。

阿里云日志服务SLS正则表达式入门教程-云淘科技

示例三:匹配一个完整字符串

筛选出格式为[时间] [级别] [模块] [信息]的日志,其中时间为yyyy-mm-dd hh:mm:ss格式,级别包括DEBUG、INFO、WARN和ERROR,模块和信息为任意的字符串。

  • 日志样例:[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)\] \[.+\] \[.+\]$

    • \[\]表示匹配[]字符,因为[]在正则语法中有特殊含义,因此需要添加转义字符\

    • \[\d{4}\-\d{2}\-\d{2} \d{2}:\d{2}:\d{2}\]表示匹配日期和时间。

    • \[(DEBUG|INFO|WARN|ERROR)\]表示匹配各个日志级别。

    • \[.+\] \[.+\]$表示匹配任意的非空字符串。

阿里云日志服务SLS正则表达式入门教程-云淘科技

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

筛选出不以DEBUG开头的日志。

  • 日志样例:DEBUG: test debug、INFO: test info

  • 正则表达式:^(?!DEBUG).*

    • ^表示字符串的开始位置,即DEBUG是处于字符串的开头位置。

    • (?!DEBUG)表示排除包含DEBUG的日志。(?!DEBUG)为正向否定预查,格式为(?!),其中为需要排除的内容。

    • .*表示匹配任意字符,直到该行日志结束。

阿里云日志服务SLS正则表达式入门教程-云淘科技

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

筛选出不包含INFO或DEBUG的日志。

  • 日志样例:hello world、INFO、ERROR message、DEBUG、warning log、error INFO、debug detail、info status

  • 正则表达式:^(?!.*(INFO|DEBUG)).*

    • ^表示字符串的开始位置,即INFO或DEBUG是处于字符串的开头位置。

    • (?!.*(INFO|DEBUG))表示排除包含INFO或DEBUG的日志。

    • .*用于匹配任意字符,直到该行日志结束。

阿里云日志服务SLS正则表达式入门教程-云淘科技

参考链接

  • 如何调试正则表达式

  • 如何优化正则表达式的性能

  • Regular-Expressions.info

  • regex-exclude-word

  • regex-exclude-pattern​

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/162727.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS云产品日志审计-云淘科技

    日志服务基于可观测性数据平台能力,为您提供云产品的日志审计能力。 日志审计对应的日志库为只读库,只能写入专属云产品日志数据,不允许通过自行写入或其他方式篡改数据。日志审计支持多账户下实时自动化、中心化采集云产品日志并进行审计,以及支持审计所需的存储、查询及信息汇总。日志审计的功能优势如下: 中心化采集 跨账号:支持将多个阿里云账号下的日志采集到一个阿里云账号…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS时间格式-云淘科技

    您在使用Logtail采集日志时,需要根据原始日志的时间字符串配置时间格式,Logtail会提取原始日志中的时间字符串并解析为Unix时间戳。本文介绍常见的时间格式及示例。 常见日志时间格式 Logtail支持的常见日志时间格式如下表所示。 说明 默认情况下,日志服务中的日志时间戳精确到秒,所以时间格式只需配置到秒,无需配置毫秒、微秒等信息。 如果原始日志中…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS使用Web Tracking采集日志-云淘科技

    日志服务支持通过Web Tracking采集HTML、H5、iOS和Android平台的日志,并支持自定义维度和指标。本文介绍如何使用Web Tracking采集日志。 什么是Web Tracking采集? 日志服务Web Tracking功能用于在Web应用程序中跟踪用户行为并将行为数据上传到日志服务中,便于您分析用户行为等。您可以通过Web Tracki…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS浏览器JavaScript SDK-云淘科技

    日志服务支持通过Web Tracking自动采集终端用户浏览器的日志。本文介绍如何使用Web Tracking JavaScript SDK自动采集浏览器的用户日志。 背景信息 您可以通过Web Tracking采集各种浏览器、小程序、iOS App或Android App的用户信息,例如: 用户使用的浏览器、操作系统、分辨率等信息。 用户浏览行为记录(例如…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS采集MySQL Binlog-云淘科技

    本文介绍通过Logtail采集MySQL Binlog的操作步骤。 重要 日志服务不再推荐您新建Logtail配置采集MySQL Binlog。您可以使用DataWorks或Flink进行采集。具体操作,请参见MySQL、MySQL数据源。 原理 Logtail内部实现了MySQL Slave节点的交互协议,具体流程如下所示。 Logtail将自己伪装为My…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。