What
查找目標字符的一種規則,主要通過匹配和重複的組合方式來查找
- 全新的界面設計
- 在創作中心設置你喜愛的代碼高亮樣式,Markdown 將代碼片顯示選擇的高亮樣式 進行展示;
- 增加了 圖片拖拽 功能,你可以將本地的圖片直接拖拽到編輯區域直接展示;
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