代码拉取完成,页面将自动刷新
同步操作将从 deepinwiki/wiki 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
[TOC]
正则表达式是对文本进行处理的工具。它很酷,不过不好理解。它能够用极其精简的语言来描述我们对文本的处理任务。但是不好阅读。
不管怎么说,它几乎是所有编程语言,和相关文本工具,所采用的标准文本处理方法。因此有必要学习它。
linux 中的正则表达式,一般有两种:
很多工具默认支持基本的正则表达式,但是可以通过选项开启扩展正则表达式。
.
:单个字符[]
: 括号范围内的单个字符[^]
:不再括号范围内的单个字符[:name:]
:预定义的字符集合
[:alnum:]
: 数字和字母[:alplha:]
:字母[:upper:]
:大写字母[:lower:]
:小写字母[:blank:]
:空格和制表符[:space:]
:空白符[:cntrl:]
:非打印字符[:digit:]
:数字[:xdigit:]
:十六进制数字[:graph:]
: 可打印字符的非空白符[:print:]
:可打印字符[:pkunct:]
:标点符号*
:匹配 0 到 n 次,贪婪模式,即接下来的字符匹配,会被归为一次匹配\?
:0 次到 1 次\+
:1 次到 n 次\{x\}
: x 次\{x,y\}
:至少 m 次,最多 y 次^
:行首$
:行尾,例子:^$
空行\<
:单词词首\>
:单词词尾\(str\)
:(和)之间是一个正则分组,它也是一个正常的匹配\1
:引用第一个分组的结果\&
:前面所有分组的结果# 123 转变为 numnumnum
# s/.../num/g 内匹配目标,即1,2,3,匹配三次
# s/[[:digit:]]/.../g 是替换的内容,num
# 注意要将预定义集合放在 [] 内
# 输出 numnumnum
echo 123 | sed 's/[[:digit:]]/num/g'
# 贪婪匹配,输出 num
echo 123 | sed 's/[[:digit:]]*/num/g'
# 指定匹配次数,输出 numnum
echo 123 | sed 's/[[:digit:]]\{1,2\}/num/g'
# 匹配 1,2,3 三个分组
# \2 引用第二个分组的结果
# 输出 2
echo 123 | sed 's/\(1\)\(2\)\(3\)/\2/g'
?
、+
、{x}
、()
不用转义,即由 ? 变为 ?|
:或这是一个扩展功能,很多工具未必会支持。
# 正向预查,2 之后为 3,即匹配第二个 2
echo 1223 | grep -P '2(?=3)'
# 回顾查找,2 之前为 1,即匹配第一个 2
echo 1223 | grep -P '(?<=1)2'
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。