首页 > 代码库 > 正则表达式和扩展正则表达式
正则表达式和扩展正则表达式
1、正则表达式是什么,有什么作用。
Global search REgular expression and Print out the line.
正则表达式:正则表达式引擎
正则表达式:
是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能,
文本搜索工具,根据用户指定的文本模式(搜索条件)对目标文件进行逐行搜索,显示能匹配到的行。
基本正则表达式:grep
扩展正则表达式: egrep, grep -E
fgrep: fast, 不支持使用正则表达式
语法格式:
grep [option]... ‘PATTERN‘ FILE...
--color=auto
命令选项:
-v: 反向选取
-o: 仅显示匹配的字串,而非字串所在的行
-i: ignore-case,忽略字符大小写
-E: 支持使用扩展正则表达式
-A #匹配内容的之后#行信息
-B #匹配内容的之前#行信息(第一个匹配项就是第一行)
-C #匹配内容的前后各#行信息
2、基本正则表达式和扩展字符表达式字符匹配的区别
基本正则表达式的元字符: 字符匹配
次数匹配元字符:用于实现指定其前面的字符所能够出现的次数
不包含特殊字符的连续字符组成的串叫单词
正则次数匹配元字符 | 涵意 | 扩展正则次数匹配元字符 | 涵意 |
* | 任意长度,它前面的字符可以出现任意次 | * | 任意长度,它前面的字符可以出现任意次 |
\? | 0次或1次 | ? | 0次或1次 |
\{m\} | m次 | {m} | m次 |
\{m,n\} | 至少m 次,至多n次 | {m,n} | 至少m 次,至多n次 |
\{m,\} | 至少m次 | {m,0} | 至少m次 |
\{0,n\} | 至多n次 | {0,n} | 至多n次 |
.* | 任意长度的任意字符 | + | 至少1次 |
3、字符匹配
字符匹配 | 涵意 |
. | 匹配任意单个字符 |
[ ] | 匹配指定范围内的任意单个字符 |
[[:alpha:]] | 大小写字母 |
[[:alnum:]] | 数子大小写字母 |
[[:digit:]] | 数字 |
[^] | 取反 |
4、位置锚定
字符 | 涵意 |
^ | 行首锚定写在模式最右侧 |
$ | 行尾锚定写在模式最右侧 |
^$ | 空白行 |
\< | 词首,出现于单词左侧,\b\<char |
\> | 词尾,出现于单词左侧,\b\<char |
5、分组
分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用
\(\)
例如:\(ab\)*
引用:
例如\(ab\(x\)y\).*\(mn\)
有编号:自左而后的左括号,以及与其匹配右括号
\(a\(b\(c\)\)mn\(x\)\).*\1
例如:
\(ab\?c\).*\1
abcmnaaa
abcmnabc
abcmnac
acxyac
fgrep ‘PATTERN‘ FILE...
不支持正则表达式