搞定正则表达式,走出新手村!

前言

正则表达式 (Regular Expression) 是一种强大的文本模式描述语言,可以通过简洁的符号组合描述复杂的字符串匹配规则。被广泛应用于数据验证、文本提取、日志分析等领域,在我们日常工作中发挥着重要的作用。

软件行业从业,是否掌握正则表达式的使用,往往是区分菜鸟和老手的重要标识。 本文我们结合一些具体案例,详细梳理下正则表达式的应用,早日告别新手村!

正则表达式核心语法

学习正则表达式, 这里推荐一个非常直观的线上验证平台, https://regex101.com , 对于我们练习和掌握正则语法非常有帮助。

普通字符和特殊字符

正则表达式作为一个匹配规则。当然首先可以匹配各种普通字符。主要指各种中英文单词、字母、数字。此外正则表达式还会预留很多特殊字符,如 * ? + . () [] $ ^ \ | 等,代表一些特别的匹配规则,而如果这些特殊字符我们需要看作普通字符进行匹配时,则需要使用 \ 符号进行转义,因此 \ 也称转义符。比如 \? 就会匹配目标文本中的 ? 字符, \\ 则会匹配目标文本中的 \ 字符

量词符(quantifiers)

量词符是用于控制匹配次数的符号:

  • * 零次或多次(如 a* 可匹配 “”, “a”, “aa”)
  • + 一次或多次(a+ 必须至少有一个a)
  • ? 零次或一次(a? 可匹配 “” 或 a)
  • {n} 精确匹配n次({4} 匹配4次)
  • {m,n} 匹配m到n次(含边界)
  • {m,} 匹配m到多次
  • {,n} 匹配零次到n次

另外,在正则表达式中,还有两种匹配模式

  • 贪婪模式:这是默认模式,也就会在目标文本中,尽可能最长地去匹配符合规则的字符
  • 惰性模式:而如果在量词后加?则标记以惰性模式进行匹配,也就是尽可能少地去匹配符合规则的字符

举例来说:

浮云长长长长长长长消

这个上联中有 7 个 字,正则表达式 长{2,3} 默认按贪婪模式匹配,会匹配到 2 次 长长长, 而加上 长{2,3}? 则会按尽量少的字符匹配,匹配到 3 次 长长

请添加图片描述

元字符(Metacharacters)

除量词符外,还有一类元字符,被预留构成正则表达式的基础特殊符号:

  • \d 匹配数字(等价于 [0-9]
  • \D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

城下秋草

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值