普通字符:普通字符包括字母、数字、汉字、下划线、空格、回车等没有定义的特殊符号;
转义字符:一些书写不变的字符,采用在字符前加”\”的方式实现转义
特殊符号--修饰匹配次数
表达式 | 作用 |
{n,} | 表达式重复匹配至少n次最多不限次 |
{n} | 表达式重复匹配必须且仅n次 |
{n,m} | 表达式重复匹配至少n次最多m次 |
* | 表达式重复匹配零到无限次 |
+ | 表达式重复匹配一到无限次 |
? | 表达式重复匹配零到一次 |
例子
表达式 | 可匹配 |
-?\d+ | 匹配一个整数 |
(-?\d+)(\.\d+)? | 匹配一个小数 |
特殊符号--修饰匹配多种字符
表达式 | 作用 |
\s | 匹配换行、制表、空格等空白字符 |
\d | 匹配一个数字 |
\w | 匹配一个数字、字母或下划线 |
. | 匹配除换行符以外的任意一个字符 |
例子
表达式 | 匹配 |
\d\d | 匹配”abc123”,第一次匹配匹配到”12” |
a.\d | 匹配”aaa10”,第一次匹配匹配到”aa1” |
特殊符号-匹配字符集
表达式 | 作用 |
[]中包含一系列字符 | 匹配其所包含字符中的任意一个字符 |
[^]中包含一系列字符 | 匹配不在其所包含字符中的任意一个字符 |
例子
表达式 | 可匹配 |
[[email protected]] | 匹配”a”或”b”或”c”或”7”或”@”字符 |
[^[email protected]] | 匹配除”a”、”b”、”c”以外的任意一个字符 |
[f-h] | 匹配”f”到”h”之间的任意一个字符 |
[^A-F0-9] | 匹配除”A”到”F”和”0”到”9”之间的任意一个字符 |
特殊符号-具有特定抽象功能的符号
表达式 | 作用 |
^ | 与字符串开始的地方匹配,不匹配任何字符 |
$ | 与字符串结束的地方匹配,不匹配任何字符 |
\b | 匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符 |
例子
表达式 | 可匹配 |
^aaa | 匹配”x aaa x”时不成功,^要求与字符串开始的位置匹配,只有当aaa位于字符串开始位置时才能匹配,如”aaa x”,则会匹配成功 |
aaa$ | 匹配”x aaa x”时不成功,$要求与字符串结束的位置匹配,只有当aaa位于字符串结束位置时才能匹配,如”x aaa”,则会匹配成功 |
.\b | 匹配 "@@@abc" 时,匹配结果是:成功;匹配到的内容是:"@a";匹配到的位置是:开始于2,结束于4 |
\bend\b | 匹配 "weekend,endfor,end" 时,匹配结果是:成功;匹配到的内容是:"end";匹配到的位置是:开始于15,结束于18 |
特殊字符-可影响表达式内部关系
表达式 | 作用 |
| | 左右两边表达式之间 "或" 关系,匹配左边或者右边 |
() | (1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰 (2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到 |
例子
表达式 | 可匹配 |
tom|jack | 匹配”tom and jack”,第一次匹配成功,结果是tom |
(go\s*)+ | 匹配”let’s go go go”第一次匹配成功,结果是”go go go” |
$(\d+\.?\d*) | 匹配”$10.9,¥20.5" ”第一次匹配成功,结果是”$10.9” |
一些通用规则
1表达式中,可以使用 "\xXX" 和 "\uXXXX" 表示一个字符("X" 表示一个十六进制数)
形式 | 字符范围 |
\xXX | 编号在 0 ~ 255 范围的字符,比如: 空格可以使用 "\x20" 表示 |
\uXXXX | 任何字符可以使用 "\u" 再加上其编号的4位十六进制数表示,如 "\u4E2D" |
2在表达式 "\s","\d","\w","\b" 表示特殊意义的同时,对应的大写字母表示相反的意义
表达式 | 可匹配 |
\S | 匹配所有非空白字符("\s" 可匹配各个空白字符) |
\D | 匹配所有的非数字字符 |
\W | 匹配所有的字母、数字、下划线以外的字符 |
\B | 匹配非单词边界,即左右两边都是 "\w" 范围或者左右两边都不是 "\w" 范围时的字符缝隙 |
3在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总
字符 | 说明 |
^ | 匹配输入字符串的开始位置。要匹配 "^" 字符本身,使用 "\^" |
$ | 匹配输入字符串的结尾位置。要匹配 "$" 字符本身,使用 "\$" |
() | 标记一个子表达式的开始和结束位置。 |
[] | 用来自定义能够匹配 ‘多种字符‘ 的表达式。 |
{} | 修饰匹配次数的符号。要匹配大括号,请使用 "\{"和\}" |
. | 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,使用 "\." |
? | 修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,使用 "\?" |
+ | 修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,使用 "\+" |
* | 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,使用 "\*" |
| | 左右两边表达式之间 "或" 关系。匹配 "|" 本身,使用 "\|" |
时间: 2024-10-06 14:38:11