正则表达式和通配符的区别
正则表达式(支持的工具:grep、egrep、sed、awk)
2.表示次数
3.位置锚定
4.分组或其他
基础正则表达式常见的元字符(字符匹配)
字符 | 含义 |
---|---|
. | 单个任意字符,可以是一个汉字 |
转义字符,用于取消特殊符号的含义 | |
[ ] | 匹配指定范围内的任意单个字符 |
[:alnum:] | 字母和数字 |
[:alpha:] | 代表任何英文大小写字符 |
[:lower:] | 小写字母 |
[:upper:] | 大写字母 |
[.] | 任何元字符放在在方括号里都代表他原来的意思,.在里面意思就是. |
[^] | 匹配指定范围外的任意单个字符,例如[^0-9]匹配任意一位非0-9里的字符 |
表示次数
字符 | 含义 |
---|---|
* | 匹配前面的字符任意次数,0到正无穷次 |
.* | 任意长度字符,不包括0次 |
? | 0或一次,可有可无的 |
+ | 1次到正无穷次 |
{3 } | 前面的字符出现三次 |
{3,5 } | 前面的字符出现3到5次 |
{3, } | 前面的字符最少出现三次 |
{,5 } | 前面的字符最多出现5次 |
位置锚定
字符 | 含义 |
---|---|
^ | 代表开头的行 |
$ | 代表结尾的行 |
^PATTERN$ | 用于模式匹配整行 (单独一行 只有root) |
^$ | 空行 |
^[[:space:]]*$ | 空白行 |
< | 代表以什么字符为开头,等同于b |
> | 代表以什么字符为结尾,等同于b |
除了 字母 数字 下划线其他都算 单词的分隔符
分组或其他
分组:用括号( )将需要组合的字符括起来,当作一个整体去处理,如(root)+
后向引用:分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名
方式为:1,2,3……分组
1表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符
或者
或者:|
扩展正则表达式元字符:(支持的工具:egrep、awk)
字符 | 含义 |
---|---|
+ | 匹配前面子表达式1次以上,例:go+d,将匹配至少一个o,good、gooood、gooooood都可以匹配到 |
? | 匹配前面子表达式0次或1次,例:go?d,将匹配gd或者god |
() | 将括号中的字符串看作是一个整体,例:g(oo)+d,将匹配oo整体一次以上,如good、goooood等 |
| | 以或的方式匹配字符串,例:g(oo|la)d,将匹配good或者glad |
实验题
如何查找ip地址
ifconfig ens33|grep netmask|grep -o ‘[0-9]+.[0-9]+.[0-9]+.[0-9]+’
ifconfig ens33|grep netmask|grep -o ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’
[0-9]{1,3}:三位数,每位是0-9的范围
表示qq号
echo “aa940132245” |grep “b[0-9]{6,12}b”
表示邮箱
echo “zhou@qq.com” |grep -E “[[:alnum:]_]+@[[:alnum:]_]+.[[:alnum:]_]+”
表示手机号
echo “13705173391”|grep -E “b1[3456789][0-9]{9}b”
原文地址:https://blog.csdn.net/HanYuHao11/article/details/134646283
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_1166.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。