正则表达式
文章目录
1 正则表达式
正则表达式是用来描述某种规则的字符串的表达式 ,脱离具体语言的一些规则 ,但是现在大多数设计语言都实现了或者支持正则表达式 。比如:C语言 、C++、python 、java…但是每种语言实现正则表达式的规则略有不同 。
2 正则表达式的规则
正则表达式是描述某种规则字符串的表达式 ,如:
十进制数字字符串 [0-9]+
正则表达式也叫做 “匹配模式”,pattern, 他是由一组特定的字符串组成, 通常用于匹配和替换文本 。
在正则表达式中的字符分为两种:
(1)普通字符
即只代表自己本身的字符
(2)元字符
即有特定含义的字符(不代表自己)
3 正则表达式中的元字符
3.1 匹配任意单个字符
3.1.1.
匹配任意单个字符
3.1.2[]
字符组
[]
字符组。虽然由多个字符构成 ,但是它仍然只匹配单个字符。 他能匹配哪些单个字符呢?全部都在[]
内列出来了,[]
仅仅能够匹配一个括号内列出出来的字符。
如:
[0123456789abcdefABCDEF]
3.1.3 -
在[]
内连接ASCII连续的字符
-
在[]
内连接ASCII连续的字符。[]
字符组内也有一个元字符-
。
如:
[0-9a-fA-F]
如:请你用正则表达式描述一个可以作为C语言标识符的字符
[a-zA-Z0-9_]
3.1.4 [^]
排除字符组
[^]
排除字符组。 匹配单个字符, 匹配除了[]
内列举出来的字符。
如:
[^0-9]
除了0到9以外的其他任意单个字符
3.1.5 \d
等字符
\d
digtial
匹配单个十进制数字(0-9)字符
\d
<==> [0-9]
\D
匹配单个非十进制数字字符
\D
<==> [^0-9]
\w
word
匹配字母 数字 _
\w
<==> [a-zA-Z0-9_]
\W
匹配单个非 字母 数字 _字符
\W
<==> [^a-zA-Z0-9_]
\s
匹配空白字符
\s
<==> [\f\n\t\r\v]
\S
匹配非空白字符
\S
<==> [^\f\n\t\r\v]
3.2匹配多个字符
3.2.1 +
+
匹配一个或者多个先前字符**(模式)**
如:
09+
即匹配09
或者099
或者0999
…
[0-9]+
即匹配[0-9]
或者[0-9][0-9]
或者[0-9][0-9][0-9]
…
3.2.2 *
*
匹配0个或者多个先前字符**(模式)**
如:
09*
即匹配0
或者09
或者099
或者0999
…
[0-9]*
即匹配空字符串或者[0-9]
或者[0-9][0-9]
…
3.2.3 ?
?
匹配0个或者1个先前字符**(模式)**
如:
09?
即0
或者09
[0-9]?
即
或者[0-9]
3.2.4匹配固定个
{数字} 匹配固定数字的字符(模式)
如:
09{3}
即0999
[0-9]{3}
即[0-9][0-9][0-9]
3.2.5匹配最少个最多个
{最小数目,最大数目}
匹配最少“最小数目”个, 最多“最大数目”个先前字符**(模式)**。
如:
09{1,3}
即09
或者099
或者0999
3.2.6匹配最少个
{最小数目,}
匹配最少“最小数目”个 上不封顶个先前字符(模式)
如:
09{1,}
即09
或者099
或者0999
…
3.3 ()
、\
、(|)
()
作为一个整体(模式)
如:
(09){1,3}
即09
或者0909
或者090909
(|)
二选一
如:
(abc | 123){2}即abcabc
或者123123
或者abc123
或者123abc
\
转义字符
\ + 元字符
表示元字符本身的那个字符
==>
\*
代表一个普通的*
\\
代表一个普通的\
如:用正则表达式描述一个 <(2^32)
的十六进制的整数
//0x0 - 0xffffffff or 0X0 - 0XFFFFFFFF
即0[xX][0-9a-fA-F]{1,8}