Linux 正则表达式

What

查找目标字符的一种规则,主要通过匹配和重复的组合方式来查找

  1. 全新的界面设计
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;

How

1.通配符匹配单个字符的情况

通配符 * 表示0到多个任意字符,如 ls –l  s*
通配符 ? 任意单个占位字符
通配符 [] 如 [a-z] [0-9] 单字符占位 

2.正则表达式中

匹配操作符

		\                  转义字符
		. 	                 匹配任意单个字符
		[1249a],[^12],[a-k]  字符序列单字符占位
		^                 行首
		$                  行尾
		\<,\>:\<abc           单词首尾边界
		|                   连接操作符   左右两边是或的逻辑
		(,)              选择操作符
		\n    	     反向引用

重复操作符

		?      	匹配0到1次。
		*      	匹配0到多次。
		+     	匹配1到多次。
		{n}   	匹配n次。
		{n,}  	匹配n到多次。
		{n,m}      匹配n到m次。
		与扩展正则表达式的区别:grep basic
		\?, \+, \{, \|, \(, and \)
		匹配任意字符
		.*  0到多个任意字符

3.Demo

找到 包含数字的行 grep “[0-9]” grep.txt
找到 包含34数字的行 grep “[34]” grep.txt
找到 包含连续4个数字的行 grep “[0-9]{4}” grep.txt
找到 只包含连续4个数字的行,前后不能再有数字了
测试数据:从尚学堂中get到的,有些复杂,在此记录分享一下,如果问题,请指出
ooxx12121212ooxx
ooxx 12121212
oox 12121212
1212 ooxx 1212
oo3xx
oo1234xx
命令 :

	grep -E "^[0-9]{4}[^0-9]|[^0-9][0-9]{4}[^0-9]|[^0-9][0-9]{4}$|^[0-9]{4}$" grep.txt

注释:
[]中的表示行首,$表示行尾
[^0-9] 中的 ^ 表示是取反,非0-9的字符
| 逻辑或连接
{4} 表示重复4次
命令描述
以数字做行首的连续4个数字,后面再接非数字的字符
| 以非数字做行首的字符,后面再接4个连续字符,后面再接非数字的字符
| 以非数字做行首的字符,后面再接4个连续字符,后面不接字符,结束
| 以数字做行首的连续4个数字,后面不接字符,结束
总结 行首数字的情况下,行尾有字符和无字符
行首是非字符的情况下,行尾有字符和无字符
所以还可以合并同类项

	grep   "\(^[0-9]\|[^0-9][0-9]\)[0-9]\{2\}\([0-9][^0-9]\|[0-9]$\)"  grep.txt

关于转义

// 原始写法
grep "aaa.*bbb.*aaa.*bbb" grep.txt
// 变成引用的方式写法,此处的\1是一个变量,代表aaa,\2代表bbb
grep "\(aaa\).*\(bbb\).*\1.*\2" grep.txt
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章