正则表达式的书写步骤:
1、观察要替换的文本内容,抽出合适的一句赋值给 $pattern,选择要替换的部分字段,将其更改为 (.*) ;
2、将所选内容即 $pattern 里的特殊符号转义加 / ;
3、注意解决里面的空格问题,使用 /s*或/s+,注意区别如下:
* 号匹配 0 个或多个的数量限定符
+ 号 匹配 1 个或多个的数量限定符
4、其他无用字符不用管。
-----------------------------------------------------------------------------------------------------------
/ 有数种用途的通用转义符
^ 断言目标的开头(或在多行模式下行的开头,即紧随一换行符之后)
$ 断言目标的结尾(或在多行模式下行的结尾,即紧随一换行符之前)
. 匹配除了换行符外的任意一个字符(默认情况下)
[ 字符类定义开始
] 字符类定义结束
| 开始一个多选一的分支
( 子模式开始
) 子模式结束
? 扩展 ( 的含义,也是 0 或 1 数量限定符,以及数量限定符最小值
* 匹配 0 个或多个的数量限定符
+ 匹配 1 个或多个的数量限定符
{ 最少/最多数量限定开始
} 最少/最多数量限定结束
[ 字符类模式中方括号内的部分称为“字符类”。字符类中可用的元字符为:
/ 通用转义字符
^ 排除字符类,但仅当其为第一个字符时有效
- 指出字符范围
] 结束字符类
以下说明了每一个元字符的用法。
反斜线(/)
反斜线第一个用法:转义可见方式编码
"*" => "/*" "/" => "//"
反斜线第二个用法:转义不可见方式编码
/a alarm,即 BEL 字符(0x07)
/cx "control-x",其中 x 是任意字符
/e escape(0x1B)
/f 换页符 formfeed(0x0C)
/n 换行符 newline(0x0A)
/r 回车符 carriage return(0x0D)
/t 制表符 tab(0x09)
/xhh 十六进制代码为 hh 的字符
/ddd 八进制代码为 ddd 的字符,或 backreference
反斜线第三个用法是指定通用字符类型:
/d 任一十进制数字
/D 任一非十进制数的字符
/s 任一空白字符
/S 任一非空白字符
/w 任一“字”的字符
/W 任一“非字”的字符
反斜线第四个用法是某些简单的断言
/b 字分界线
/B 非字分界线
/A 目标的开头(独立于多行模式)
/Z 目标的结尾或位于结尾的换行符前(独立于多行模式)
/z 目标的结尾(独立于多行模式)
/G 目标中的第一个匹配位置
音调符(^)和美元符($)
句号(.)
方括号([])
竖线(|) 竖线字符用来分隔多选一模式
子模式
子模式由圆括号定界,可以嵌套。将模式中的一部分标记为子模式可以:
1. 将多选一的分支局部化。例如
模式: cat(aract|erpillar|) 表示 "cat","cataract" 或 "caterpillar"
2. 将子模式设定为捕获子模式
例如,如果将字符串 "the red king" 来和模式the ((red|white) (king|queen))进行匹配,捕获的子串为"red king","red"以及"king"并被计为1,2和3
3.Single-character quantifiers
表格 3. Single-character quantifiers
* equivalent to {0,}
+ equivalent to {1,}
? equivalent to {0,1}
字符簇 含义[[:alpha:]] 任何字母[[:digit:]] 任何数字[[:alnum:]] 任何字母和数字[[:space:]] 任何白字符[[:upper:]] 任何大写字母[[:lower:]] 任何小写字母[[:punct:]] 任何标点符号[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]
1、观察要替换的文本内容,抽出合适的一句赋值给 $pattern,选择要替换的部分字段,将其更改为 (.*) ;
2、将所选内容即 $pattern 里的特殊符号转义加 / ;
3、注意解决里面的空格问题,使用 /s*或/s+,注意区别如下:
* 号匹配 0 个或多个的数量限定符
+ 号 匹配 1 个或多个的数量限定符
4、其他无用字符不用管。
-----------------------------------------------------------------------------------------------------------
/ 有数种用途的通用转义符
^ 断言目标的开头(或在多行模式下行的开头,即紧随一换行符之后)
$ 断言目标的结尾(或在多行模式下行的结尾,即紧随一换行符之前)
. 匹配除了换行符外的任意一个字符(默认情况下)
[ 字符类定义开始
] 字符类定义结束
| 开始一个多选一的分支
( 子模式开始
) 子模式结束
? 扩展 ( 的含义,也是 0 或 1 数量限定符,以及数量限定符最小值
* 匹配 0 个或多个的数量限定符
+ 匹配 1 个或多个的数量限定符
{ 最少/最多数量限定开始
} 最少/最多数量限定结束
[ 字符类模式中方括号内的部分称为“字符类”。字符类中可用的元字符为:
/ 通用转义字符
^ 排除字符类,但仅当其为第一个字符时有效
- 指出字符范围
] 结束字符类
以下说明了每一个元字符的用法。
反斜线(/)
反斜线第一个用法:转义可见方式编码
"*" => "/*" "/" => "//"
反斜线第二个用法:转义不可见方式编码
/a alarm,即 BEL 字符(0x07)
/cx "control-x",其中 x 是任意字符
/e escape(0x1B)
/f 换页符 formfeed(0x0C)
/n 换行符 newline(0x0A)
/r 回车符 carriage return(0x0D)
/t 制表符 tab(0x09)
/xhh 十六进制代码为 hh 的字符
/ddd 八进制代码为 ddd 的字符,或 backreference
反斜线第三个用法是指定通用字符类型:
/d 任一十进制数字
/D 任一非十进制数的字符
/s 任一空白字符
/S 任一非空白字符
/w 任一“字”的字符
/W 任一“非字”的字符
反斜线第四个用法是某些简单的断言
/b 字分界线
/B 非字分界线
/A 目标的开头(独立于多行模式)
/Z 目标的结尾或位于结尾的换行符前(独立于多行模式)
/z 目标的结尾(独立于多行模式)
/G 目标中的第一个匹配位置
音调符(^)和美元符($)
句号(.)
方括号([])
竖线(|) 竖线字符用来分隔多选一模式
子模式
子模式由圆括号定界,可以嵌套。将模式中的一部分标记为子模式可以:
1. 将多选一的分支局部化。例如
模式: cat(aract|erpillar|) 表示 "cat","cataract" 或 "caterpillar"
2. 将子模式设定为捕获子模式
例如,如果将字符串 "the red king" 来和模式the ((red|white) (king|queen))进行匹配,捕获的子串为"red king","red"以及"king"并被计为1,2和3
3.Single-character quantifiers
表格 3. Single-character quantifiers
* equivalent to {0,}
+ equivalent to {1,}
? equivalent to {0,1}
字符簇 含义[[:alpha:]] 任何字母[[:digit:]] 任何数字[[:alnum:]] 任何字母和数字[[:space:]] 任何白字符[[:upper:]] 任何大写字母[[:lower:]] 任何小写字母[[:punct:]] 任何标点符号[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]