正则表达式字符含义说明(元字符、量词、组和范围、转义字符)

后端 潘老师 7个月前 (10-16) 148 ℃ (0) 扫码查看

正则表达式(Regex)是正则表达式的缩写。正则表达式是由不同字符组成的序列,用于描述特定的搜索模式。它也被称为有理表达式。

它主要用于搜索和操作文本字符串。简单来说,您可以使用正则表达式轻松搜索模式并将其替换为匹配模式。

这个概念或工具几乎在所有编程或脚本语言中使用,如PHP、C、C++、Java、Perl、JavaScriptPython、Ruby等。它还用于诸如Word这样的文字处理软件,帮助用户在文档中搜索文本,还用于各种集成开发环境(IDE)中。

正则表达式定义的模式从左到右应用于给定的字符串或文本。

正则表达式字符

正则表达式有以下不同类型的字符:

  1. 元字符(Metacharacters)
  2. 量词(Quantifier)
  3. 组和范围(Groups and Ranges)
  4. 转义字符或字符类(Escape Characters or Character Classes)

元字符

元字符 描述 示例
^ 此字符用于在字符串的开头将表达式与右侧匹配。 ^a 是一个与以 ‘a’ 开头的字符串匹配的表达式,例如 “aab”、”a9c”、”apr”、”aaaaab” 等。
$ $符号用于将表达式与字符串的末尾左侧匹配。 r$ 是一个与以 ‘r’ 结尾的字符串匹配的表达式,例如 “aaabr”、”ar”、”r”、”aannn9r” 等。
. 此字符用于匹配字符串中的任何单个字符,但不包括行终止符,即 ‘\n’。 b.x 是一个匹配字符串 “bax”、”b9x”、”bar” 等的表达式。
| 用于在左侧或右侧匹配特定字符或一组字符。如果左侧字符匹配,则忽略右侧字符。 A|b是一个表达式,它生成多种字符串,但每个字符串都包含字符a或b。
\ 用于在字符串中的此符号后转义特殊字符。
A 用于在字符串中匹配字符 ‘A’。 此表达式匹配至少包含一个 ‘A’ 的字符串,例如 “Amcx”、”mnAr”、”mnopAx4” 等。
Ab 用于在字符串中匹配子字符串 ‘ab’。 此表达式匹配至少包含 ‘Ab’ 的字符串,例如 “Abcx”、”mnAb”、”mnopAbx4” 等。

量词

在正则表达式中,量词用于指定字符出现的次数。

字符 描述 示例
+ 此字符指定将左侧的表达式出现一次或多次。 s+ 是一个表达式,它生成 “s”、”ss”、”sss” 等字符串。
? 此字符指定将左侧的表达式出现0次(零次)或1次。 aS? 是一个表达式,它生成 “a” 或 “as”,但不生成 “ass”。
* 此字符指定将左侧的表达式出现0次或多次。 Br* 是一个表达式,它生成 “B”、”Br”、”Brr”、”Brrr” 等字符串。
{x} 它指定左侧的表达式仅出现x次。 Mab{5} 是一个表达式,它生成包含5个b的字符串,如 “Mabbbbb”。
{x,} 它指定左侧的表达式出现x次或更多次。 Xb{3,} 是一个表达式,它生成包含至少3个b的各种字符串,如 “Xbbb”、”Xbbbb” 等。
{x,y} 它指定左侧的表达式至少出现x次但不超过y次。 Pr{3,6}a 是一个表达式,提供两个字符串。这两个字符串如下所示:”Prrrr” 和 “Prrrrr”。

组和范围

在正则表达式中,组和范围定义了方括号中包含的字符集合。

字符 描述 示例
( ) 用于匹配括号内的内容。 A(xy) 是一个与以下字符串匹配的表达式:”Axy”。
{ } 用于匹配左侧字符串中大括号内定义的特定次数出现。 xz{4,6} 是一个与以下字符串匹配的表达式:”xzzzzz”。
[ ] 用于匹配方括号内定义的一组字符范围中的任何字符。 xz[atp]r 是一个与以下字符串匹配的表达式:”xzar”、”xztr” 和 “xzpr”。
[pqr] 用于分别匹配p、q或r。 此表达式与以下字符串匹配:”p”、”q” 和 “r”。
[pqr][xy] 匹配p、q或r,后跟x或y。 此表达式与以下字符串匹配:”px”、”qx”、”rx”、”py”、”qy” 和 “ry”。
(?: …) 用于匹配非捕获组。 A(?:nt
[^…..] 与方括号中未定义的字符匹配。 假设 Ab[^pqr] 是一个只匹配以下字符串的表达式:”Ab”。
[a-z] 与小写字母a到z匹配。 此表达式与以下字符串匹配:”a”、”python”、”good”。
[A-Z] 与大写字母A到Z匹配。 此表达式与以下字符串匹配:”EXCELLENT”、”NATURE”。
^[a-zA-Z] 用于匹配以小写或大写字母开头的字符串。 此表达式与以下字符串匹配:”A854xb”、”pv4fv”、”cdux”。
[0-9] 与0到9之间的数字匹配。 此表达式与以下字符串匹配:”9845″、”54455″。
[aeiou] 仅匹配小写元音字母的方括号。
[AEIOU] 仅匹配大写元音字母的方括号。
ab[^4-9] 与方括号中未定义的数字或字符匹配。 此表达式与不包含5、6、7和8的字符串匹配。

转义字符或字符类

正则表达式中的转义字符或字符类用于指定特定字符或字符类。它们以反斜杠(\)开头,后面跟着一个字符或字符类的表示,用于匹配文本中的特定字符。

字符 描述
\s 用于匹配一个空白字符。
\S 用于匹配一个非空白字符。
\0 用于匹配空字符(NULL字符)。
\a 用于匹配铃声或警报字符。
\d 用于匹配一个十进制数字,即从0到9。
\D 用于匹配任何非十进制数字。
\n 用于匹配换行符。
\w 用于匹配字母数字字符[0-9a-zA-Z]。
\W 用于匹配一个非单词字符。
\b 用于匹配单词边界。

版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/9651.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】