哪个网站找做软件,wordpress 4.8.2,免费网站软件哪个好,二级网站建设情况说明书1.正则表达式的定义#xff1a; 正则表达式通常用于判断语句中#xff0c;使用字符串描述、匹配一系列符合某个规则的字符串。 正则表达式是由普通字符与元字符组成。 普通字符包括小写字母、数字、标点符号及一些其他符号。元字符是指在正则表达式中具有特殊意义的专用字符 正则表达式通常用于判断语句中使用字符串描述、匹配一系列符合某个规则的字符串。 正则表达式是由普通字符与元字符组成。 普通字符包括小写字母、数字、标点符号及一些其他符号。元字符是指在正则表达式中具有特殊意义的专用字符可以用来规定其前导字符即位于元字符前面的字符在目标对象中的出现模式。 正则表达式模式都区分大小写 2.正则表达式的分类
正则表达式根据从POSIX BRE或者POSIX ERE标准可以分为 基本正则表达式扩展正则表达式 可以使用 man 7 regex可以使用 man手册帮助
3.文本三剑客grep sed awk支持的正则表达式
shell是不支持正则表达式的shell支持的是通配符。shell中的正则表达式只有个别命令支持的一般常用的是文本三剑客。
支持正则的shell命令正则类型grep默认使用基本正则表达式(BRE)要使用扩展正则需要加转义字符sed 默认使用基本正则表达式BREawk 使用扩展正则表达式(ERE)egrep 或 grep -E使用扩展的正则表达式(ERE) 4.基本正则表达式 支持的工具grep、egrep、sed、 awk。注意grep要配合-E或者-P使用 元字符含义及用法\ 表示转义字符去掉特殊符号的特殊含义. 匹配任意单个字符^ 匹配字符串开头的位置$ 匹配字符串末尾的位置* 匹配前面的字符出现0~∞[list] 匹配list列表中的一个字符列表中只要有一个符合即可[^list] 匹配任意非list列表中的一个字符{n} 匹配前面的子表达式n次{n,} 匹配前面的子表达式最少n次{,n}匹配前面的子表达式最多n次{n,m} 匹配前面的子表达式n到m次[ ] 代表单个字符\? 1次或0次^$ 空行.* 1~∞
4.1转义字符的运用
将特殊含义的字符转换为普通字符的含义
被转义的特殊字符转义前的含义作用\ 具有赋值的作用或则进行字符判断\ !取反\ 单个符可以将命令挂在后台上两个是逻辑符号且的作用\ $取值变量的作用
将普通字符转换为特殊作用的字符
被赋予新含义的普通字符现在拥有的作用\n 换行\t转化为制表符\w小写匹配包括下划线的任何单词字符\W(大写)匹配任何非单词字符。等通于[^A-Za-z0-9_]\r转换后是回车符\d匹配一个数字字符\D匹配一个非数字字符。等价于[^0-9]\s小写空白符\S(大写) 非空白符
4.2.中括号表达式
普通中括号包围的字符组表示某个单个字符匹配中括号内的任意字符即匹配成功
x[abc]z 可以匹配包含“xaz”、“xbz”、“xcz”的字符串取反表示法 中括号内开头使用 ^ ,表示只要不是中括号内的字符就匹配 x[ ^abc]z 可以匹配包含 “xdz”、“xez” 等字符串但不能匹配包含“xaz”、“xbz”、“xcz”的字符串
特殊元字符在中括号中匹配
想要在中括号中匹配 ^ 需要将其放在 中括号非开头的位置 如[a^]想要在中括号中匹配 - 需要将其放在 开头位置或结尾位置 如[abc-]、[-abc]想要在中括号中匹配 ] 需要将其放在 开头位置 如[]abc] 位置匹配 ^ 匹配行首 $ 匹配行尾 \b 匹配单词边界处的位置开头和结尾 \bword\b 等价于 \word\ \ 匹配单词开头处的位置 \ 匹配单词结尾处的位置 \B 匹配非单词边界处的位置 字符类
[:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字母 A-Z a-z[:lower:] 小写字母[:upper:] 大写字母[:blank:]空白字符[:space:] 包括空格、制表符 (水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广[:cntrl:] 不可打印的控制字符退格、删除、警铃...[:digit:] 十进制数字[:xdigit:]十六进制数字[:graph:] 可打印的非空白字符[:print:] 可打印字符[:punct:] 标点符号
量词 \{m\} 表示匹配前一个字符或前一个子表达式m次
\{mn\} mn表示匹配前一个字符或前一个字表达式最少m次最多n次
\{m\} 表示匹配前一个字符或前一个子表达式至少m次
\{n\} 表示匹配前一个字符或前一个字表达式最多n次匹配0次也算是成功
* 表示前一个字符或前一个子表达式匹配0次或多次等价于{0}
.* 匹配任意长度的任意字符
5.扩展正则表达式的元字符
egrep 默认使用的 是扩张正则
支持的工具egrep、awk注意使用grep要配合-E或者-P使用sed要配合-r使用。
元字符含义及用法 匹配前面子表达式1次以上例: god将匹配至少一个o如god、good、goood等? 匹配前面子表达式0次或者1次例: go?d将匹配gd或god() 将括号中的字符串作为一个整体例1: g(oo)d将匹配oo整体1次以上如good、gooood等| 以或的方式匹配字符串例g(oo|la)d将匹配good或者 glad *匹配前面字符任意次{n}匹配n次{m,n}至少m至多n次
扩展常用的量词 表示匹配前一个字符或前一个子表达式1或多次即至少一次 等价于 {1, }? 表示匹配前一个字符或前一个子表达式0或1次等价于 {0,1} 等价于 {,1}
分组捕获和反向引用 使用小括号包围一部分正则表达式这部分正则表达式即成为一个分组整体也称为一个子表达式。
分组后可以使用 \N 来反向引用对应的分组匹配结果N是1-9的正整数\1表示第一个分组表达式的匹配结果\2表达第二个分组表达式的匹配结果。
注意反向引用引用的是分组匹配后的结果不是分组表达式
例如正则表达式(abc|def) and \1xyz 可以匹配字符串“abc and abcxyz ” 或“def and defxyz”但是不能匹配“abc and defxyz” 或 “def and abcxyz”