auto commit

This commit is contained in:
CyC2018 2018-03-17 21:50:07 +08:00
parent ffd7281501
commit 70e033098b

View File

@ -1,27 +1,18 @@
<!-- GFM-TOC --> <!-- GFM-TOC -->
* [概述](#概述) * [一、概述](#一概述)
* [匹配单个字符](#匹配单个字符) * [二、匹配单个字符](#二匹配单个字符)
* [匹配一组字符](#匹配一组字符) * [三、匹配一组字符](#三匹配一组字符)
* [使用元字符](#使用元字符) * [四、使用元字符](#四使用元字符)
* [匹配空白字符](#匹配空白字符) * [五、重复匹配](#五重复匹配)
* [匹配特定的字符类别](#匹配特定的字符类别) * [六、位置匹配](#六位置匹配)
* [使用 POSIX 字符类](#使用-posix-字符类) * [七、使用子表达式](#七使用子表达式)
* [重复匹配](#重复匹配) * [八、回溯引用](#八回溯引用)
* [位置匹配](#位置匹配) * [九、前后查找](#九前后查找)
* [单词边界](#单词边界) * [十、嵌入条件](#十嵌入条件)
* [字符串边界](#字符串边界)
* [使用子表达式](#使用子表达式)
* [回溯引用](#回溯引用)
* [替换](#替换)
* [大小写转换](#大小写转换)
* [前后查找](#前后查找)
* [嵌入条件](#嵌入条件)
* [回溯引用条件](#回溯引用条件)
* [前后查找条件](#前后查找条件)
<!-- GFM-TOC --> <!-- GFM-TOC -->
# 概述 # 一、概述
正则表达式用于文本内容的查找和替换。 正则表达式用于文本内容的查找和替换。
@ -31,7 +22,7 @@
[正则表达式在线工具](http://tool.chinaz.com/regex) [正则表达式在线工具](http://tool.chinaz.com/regex)
# 匹配单个字符 # 二、匹配单个字符
正则表达式一般是区分大小写的,但是也有些实现是不区分。 正则表达式一般是区分大小写的,但是也有些实现是不区分。
@ -49,7 +40,7 @@ nam.
My **name** is Zheng. My **name** is Zheng.
# 匹配一组字符 # 三、匹配一组字符
**[ ]** 定义一个字符集合; **[ ]** 定义一个字符集合;
@ -73,7 +64,7 @@ abc[^0-9]
2. abc1 2. abc1
3. abc2 3. abc2
# 使用元字符 # 四、使用元字符
## 匹配空白字符 ## 匹配空白字符
@ -92,21 +83,21 @@ abc[^0-9]
## 匹配特定的字符类别 ## 匹配特定的字符类别
**1. 数字元字符** ### 1. 数字元字符
| 元字符 | 说明 | | 元字符 | 说明 |
| ------------ | ------------ | | ------------ | ------------ |
| \d | 数字字符,等价于 [0-9] | | \d | 数字字符,等价于 [0-9] |
| \D | 非数字字符,等价于 [^0-9] | | \D | 非数字字符,等价于 [^0-9] |
**2. 字母数字元字符** ### 2. 字母数字元字符
| 元字符 | 说明 | | 元字符 | 说明 |
| ------------ | ------------ | | ------------ | ------------ |
| \w | 大小写字母,下划线和数字,等价于 [a-zA-Z0-9\_] | | \w | 大小写字母,下划线和数字,等价于 [a-zA-Z0-9\_] |
| \W | 对 \w 取非 | | \W | 对 \w 取非 |
**3. 空白字符元字符** ### 3. 空白字符元字符
| 元字符 | 说明 | | 元字符 | 说明 |
| ------------ | ------------ | | ------------ | ------------ |
@ -135,7 +126,7 @@ abc[^0-9]
使用时需要用两对方括号,例如 [[:alpha:]]。 使用时需要用两对方括号,例如 [[:alpha:]]。
# 重复匹配 # 五、重复匹配
**\+** 匹配 1 个或者多个字符, **\*** 匹配 0 个或者多个,**?** 匹配 0 个或者 1 个。 **\+** 匹配 1 个或者多个字符, **\*** 匹配 0 个或者多个,**?** 匹配 0 个或者 1 个。
@ -178,7 +169,7 @@ a.+c
**abcabcabc** **abcabcabc**
# 位置匹配 # 六、位置匹配
## 单词边界 ## 单词边界
@ -216,7 +207,7 @@ a.+c
6. &nbsp;&nbsp;&nbsp;&nbsp; int c = a + b; 6. &nbsp;&nbsp;&nbsp;&nbsp; int c = a + b;
7. } 7. }
# 使用子表达式 # 七、使用子表达式
使用 **( )** 定义一个子表达式。子表达式的内容可以当成一个独立元素,即可以将它看成一个字符,并且使用 * 等元字符。 使用 **( )** 定义一个子表达式。子表达式的内容可以当成一个独立元素,即可以将它看成一个字符,并且使用 * 等元字符。
@ -264,7 +255,7 @@ a.+c
1. **192.168.0.1** 1. **192.168.0.1**
2. 555.555.555.555 2. 555.555.555.555
# 回溯引用 # 八、回溯引用
回溯引用使用 **\n** 来引用某个子表达式,其中 n 代表的是子表达式的序号,从 1 开始。它和子表达式匹配的内容一致,比如子表达式匹配到 abc ,那么回溯引用部分也需要匹配 abc 。 回溯引用使用 **\n** 来引用某个子表达式,其中 n 代表的是子表达式的序号,从 1 开始。它和子表达式匹配的内容一致,比如子表达式匹配到 abc ,那么回溯引用部分也需要匹配 abc 。
@ -350,7 +341,7 @@ $1\U$2\E$3
aBCd aBCd
# 前后查找 # 九、前后查找
前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。向前查找用 **?=** 来定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义。 前后查找规定了匹配的内容首尾应该匹配的内容,但是又不包含首尾匹配的内容。向前查找用 **?=** 来定义,它规定了尾部匹配的内容,这个匹配的内容在 ?= 之后定义。所谓向前查找,就是规定了一个匹配的内容,然后以这个内容为尾部向前面查找需要匹配的内容。向后匹配用 ?<= 定义。
@ -370,7 +361,7 @@ aBCd
对向前和向后查找取非,只要把 = 替换成 ! 即可,比如 (?=) 替换成 (?!) 。取非操作使得匹配那些首尾不符合要求的内容。 对向前和向后查找取非,只要把 = 替换成 ! 即可,比如 (?=) 替换成 (?!) 。取非操作使得匹配那些首尾不符合要求的内容。
# 嵌入条件 # 十、嵌入条件
## 回溯引用条件 ## 回溯引用条件