加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-13 22:23:34 所属栏目:百科 来源:网络整理
导读:grep相关用法: 正则表达式 作用 :grep 文本搜索工具,根据用户制定的模式(partern)逐行搜索目标文本,打印匹配的行。 模式 : 正则表达式的元字符及文本字符所编写的过滤条件。 元字符:字符表示其字面意义,而用于表示通配或控制功能。 语法: 650) thi

grep相关用法:

正则表达式

作用:grep 文本搜索工具,根据用户制定的模式(partern)逐行搜索目标文本,打印匹配的行。

模式: 正则表达式的元字符及文本字符所编写的过滤条件。


元字符:字符表示其字面意义,而用于表示通配或控制功能。


语法:

wKiom1XjCkuDYUTLAABL-mKS1jE715.jpg

-v:显示模式匹配不到的行

-i:忽略字符大小写

-o:仅显示能够模式匹配到串

-q:静默模式

-E:扩展的正则表达式

wKiom1XjDCrytlnAAABsZV7UR88191.jpg

基本正则表达式的元字符

字符匹配

  • .:匹配任意单个字符

  • []:匹配指定范围内额任意单个字符

  • [^]:匹配指定范围内的任意单个字符,非...

指定字符集

  • [[:lower:]]表示[a-z]

  • [[:upper:]]表示[A-Z]

  • [[:alnum:]]表示[a-zA-Z0-9]

  • [[:alpha:]]表示[a-zA-Z]

  • [[:space:]]表示空格和tab键

  • [[:digit:]]表示[0-9]


次数匹配元字符,用于要指定其次数字符的后面,前面字符出现多少次

*:任意次

?:0次或1次

+:1次或多次

{m}:精确m次数

{m,n}:至少m次,至多n次

{0,n}:至多n次

{m,}:至少m次

.*:任意长度的任意字符

wKiom1XjKJPgzYoxAACJPbd78Kc858.jpg


位置锚定

^:行首锚定,用于模式的最左侧

$:行尾锚定,用于模式的最右侧,使用 单引号作强应用

&;,b:词首锚定,表示单词模式的左侧

&;,b:词尾锚定,表示单词模式的右侧

^$:空白行

wKioL1XjLMbh69u9AACtRsmEhGI403.jpg


分组符号:()多个字符当成一个字符

分组的小挂号中的模式匹配到的内容,会在执行过程总被正则表达式引擎记录下来,保存内置的变量中,1,2

1:从左侧起,第一个左括号,以及与之配对的右括号中间的模式所匹配到的内容

2:从左侧起,第二个左括号,以及与之配对的右括号中间的模式所匹配到的内容

后向应用,使用变量引用前面的分组鼓号中的模式所匹配的字符。


扩展的正则表达式

grep家庭有3个命令

grep 基本的正则表达式

-E 扩展的正则表达式

-F 不支持正则表达式(字符当元字符搜索)

egrep 扩展的正则表达式

fgrep 不支持正则表达式


扩展正则表达式的元字符:

字符匹配:

.:任意单个字符

[]:匹配指定范围内额任意单个字符

[^]:匹配指定范围内的任意单个字符,非...

次数匹配:

*:任意次数

?:0次或1次

+:1次以上

{m}:精确匹配m次

{m,n}:至少m次,至多n次

锚定:

^:锚定行首

$:锚定行尾

&;,b:词首

&;,b:词尾

分组:()

后向引用,1,2,.....


或者

a|b

C|cat:不表示Cat或cat,而表示C或cat

要写成(C|c)at

wKioL1XjL87AN4u6AAIMBBi9pBw490.jpg

练习

  1. 显示/etc/passwd文件中以bash结尾的行


  2. wKiom1XjL1mifM27AACSlWm55VY660.jpg

  3. 显示/etc/passwd文件中的两位数或三位数


  4. wKioL1XjMv-TYByMAAHkZ8juxao887.jpg

  5. 显示`netstat -tan`命令结果中以‘LISTEN’后跟0个、1个或者多个空白字符结尾


  6. wKiom1XjM8ejCxjeAADe7nSmwow265.jpg

  7. 添加用户bash、testbash、basher以及nologin用户(nologin用户的shell为/sbin/nologin);而后找出/etc/passwd文件中用户名与其shell名相同的行


  8. wKioL1XkgrDxxTgrAAFf8AJnKfk488.jpg

  9. 显示当前系统上root、centos或者user1用户的默认shell和UID (请事先创建这些用户,若不存在)


  10. wKioL1XkJMDAmxPiAACNkz3iWsQ426.jpg

  11. 找出/etc/rc.d/init.d/functions文件中某单词(单词中间可以存在下划线)后面跟着一组小括号的行


  12. wKioL1XkMELwXBylAAGtVXsxa5A001.jpg

  13. 使用echo输出一个路径,而后egrep找出其路径基名;进一步的使用egrep取出其目录名


  14. wKiom1XkcuDitOKxAABFUx-eyNI744.jpg

  15. wKioL1Xkb_LBImF8AABV_LbOA3k800.jpg

  16. 找出ifconfig命令执行结果中1-255之间的数字

wKiom1XkfBvzaGARAAE-tVtKSaA656.jpg

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读