首页 > 代码库 > 南瓜不说话(M1)-正则表达式符号

南瓜不说话(M1)-正则表达式符号

普通字符:普通字符包括字母、数字、汉字、下划线、空格、回车等没有定义的特殊符号;

转义字符:一些书写不变的字符,采用在字符前加”\”的方式实现转义

特殊符号--修饰匹配次数
表达式作用
{n,}表达式重复匹配至少n次最多不限次
{n}表达式重复匹配必须且仅n次
{n,m}表达式重复匹配至少n次最多m次
*表达式重复匹配零到无限次
+表达式重复匹配一到无限次
?表达式重复匹配零到一次
技术分享
例子
表达式可匹配
-?\d+匹配一个整数
(-?\d+)(\.\d+)?匹配一个小数
   
特殊符号--修饰匹配多种字符
表达式作用
\s匹配换行、制表、空格等空白字符
\d匹配一个数字
\w匹配一个数字、字母或下划线
.匹配除换行符以外的任意一个字符
      技术分享
例子
表达式匹配
\d\d匹配”abc123”,第一次匹配匹配到”12”
a.\d匹配”aaa10”,第一次匹配匹配到”aa1”
    
特殊符号-匹配字符集
表达式作用
[]中包含一系列字符匹配其所包含字符中的任意一个字符
[^]中包含一系列字符匹配不在其所包含字符中的任意一个字符
例子
表达式可匹配
[abc7@]匹配”a”或”b”或”c”或”7”或”@”字符
[^abc7@]匹配除”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 次或任意次。要匹配 "*" 字符本身,使用 "\*"
|左右两边表达式之间 "或" 关系。匹配 "|" 本身,使用 "\|"

南瓜不说话(M1)-正则表达式符号