正则表达式

正则表达式

普通字符

普通字符直接匹配与自身相同的字符。例如,正则表达式"abc"就可以匹配字符串"abc"中的这三个连续字符。注意:普通字符在匹配时区分大小写

元字符

元字符是正则表达式中具有特殊含义的字符,它们赋予了正则表达式强大的模式匹配能力。以下是一些常见的元字符及其含义:​

点号(.)

 点号匹配除换行符(\n)之外的任意单个字符。例如,正则表达式 "a.c" 可以匹配 "abc"、"aec"、"a1c" 等字符串,但不能匹配 "a\nc"。​

脱字符(^)

 脱字符用于匹配字符串的开始位置。例如,正则表达式 "^abc" 表示匹配以 "abc" 开头的字符串,如 "abcdef"、"abc123" 等,但 "xabc" 则不会被匹配。​

美元符号($)

美元符号用于匹配字符串的结束位置。

星号(*)​

星号表示匹配其前面的字符或子表达式零次或多次。

加号(+)

加号表示匹配其前面的字符或子表达式一次或多次,即至少出现一次。

问号(?)

 问号有两种含义:一是表示匹配其前面的字符或子表达式零次或一次,即可选出现;二是用于非贪婪匹配模式(后文会详细介绍)。

方括号([])​

方括号用于定义一个字符集合,匹配该集合中的任意一个字符。方括号内还可以使用脱字符(^)表示取反,即匹配不在集合中的任意一个字符。例如,[^abc] 表示匹配除 a、b、c 之外的任意一个字符。​

大括号({})​

  大括号用于指定其前面的字符或子表达式的出现次数。大括号内可以有一个数字,表示精确出现的次数;也可以有两个数字,用逗号分隔,表示出现次数的范围(左闭右闭)。例如,"a {3}" 表示匹配 a 恰好出现 3 次;"a {2,5}" 表示匹配 a 出现 2 到 5 次;"a {2,}" 表示匹配 a 至少出现 2 次;"a {,5}" 表示匹配 a 最多出现 5 次。

竖线(|)

竖线用于表示逻辑 “或” 关系,即匹配其左右两边的任意一个子表达式。

反斜杠(\)​

反斜杠用于转义元字符,使其失去特殊含义,作为普通字符匹配。例如,如果要匹配点号(.)本身,就需要使用 ".";

此外,反斜杠还与一些字母组合形成预定义的字符类,例如:​

\d:匹配任意一个数字,等价于 [0-9]。​
\D:匹配任意一个非数字字符,等价于 [^0-9]。​
\s:匹配任意一个空白字符(包括空格、制表符、换行符等),等价于 [\t\n\r\f\v]。​
\S:匹配任意一个非空白字符,等价于 [^ \t\n\r\f\v]。​
\w:匹配任意一个单词字符(包括字母、数字和下划线),等价于 [a-zA-Z0-9_]。​
\W:匹配任意一个非单词字符,等价于 [^a-zA-Z0-9_]。

贪婪匹配与非贪婪匹配​

在正则表达式中,默认情况下,量词(如 *、+、?、{} 等)是贪婪的,即尽可能多地匹配字符。例如,对于字符串 "aabbaabb",正则表达式 "a.b"会匹配整个字符串"aabbaabb",因为它会尽可能多地匹配中间的字符。而如果希望量词进行非贪婪匹配,即尽可能少地匹配字符,可以在量词后面加上问号(?)。此时,正则表达式"a.?b"会匹配第一个"a"和第一个"b"之间的内容,即"aab"。

忽略大小写匹配​

在很多情况下,我们希望匹配字符时不区分大小写。可以通过在正则表达式中添加标志位来实现这一功能。不同的编程语言和工具使用的标志位可能有所不同。例如,在 Python 中,可以使用 re.IGNORECASE 标志(或简写为 re.I);在 JavaScript 中,可以在正则表达式末尾添加 "i" 标志。例如,正则表达式 "/abc/i" 可以匹配 "abc"、"ABC"、"AbC" 等。​

多行匹配模式​

 默认情况下,正则表达式中的脱字符(^)和美元符号(​$)只匹配整个字符串的开始和结束位置。但在多行文本中,我们可能希望它们匹配每一行的开始和结束位置。这时可以使用多行匹配模式。例如,在Python中,使用re.MULTILINE标志(或简写为re.M);在JavaScript中,在正则表达式末尾添加"m"标志。

转载请说明出处内容投诉
CSS教程网 » 正则表达式

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买