19,正規表示式

2021-09-28 07:00:05 字數 1209 閱讀 6620

grep

-i  不區分大小寫

-v  --invert-match 反選

-c  --count  匹配次數

-l  --files-with-matches  列印檔案名

-l  --files-without-match  列印出不匹配的檔名

-n  --line-number  列印出匹配行的行號

-h  --no-filename  不列印檔案名

.  代表任意字元

^  匹配行首

$  匹配行尾

^&  匹配空行

裡邊的字元,是要匹配的字符集,元字元在裡邊代表字面意義。但是^代表否,-代表範圍。

但是 grep -h '[a-z]' dirlist*.txt  代表a-z的所有字元,  grep -h '[-az]' dirlist*.txt  代表-、a、z三個字元。

[a-z] 可能存在字典序/ascii序的問題,所以有一種替代的方案,不會存在這種問題。

[:alnum:]  大寫字母+小寫字母+數字

[:word:]    大寫字母+小寫字母+數字+下劃線(_)

[:alpha:]   大寫字母+小寫字母

[:blank:]    空格和tab鍵

[:digit:]      數字[0-9]

[:lower:]    小寫字母

[:space:]   [ \t\r\n\v\f]

[:upper:]    大寫字母

[:xdigit:]     16進製制,[0-9a-fa-f]

用法:要放在內,

ls /usr/sbin/[[:upper:]]*

基礎的支援  ^ $ . [ ]*  ,除此之外都認為是字面值,擴充套件的還支援:( ) ?+|

egrep 或者 grep -e 支援擴充套件正則。

基礎正則裡邊,(, ), 前面加上反斜線\,也會視為元字元。

|  表示或邏輯

()  表示乙個作用域

?匹配乙個字元0或1次

*  匹配乙個字元0或多次

+  匹配乙個字元1或多次

匹配乙個字元指定次

匹配指定n次

匹配[n,m]次

匹配》=n次

匹配<=m次

vim的查詢支援正則,只不過只支援基本正則,擴充套件的元字元前需要加反斜線,例如:

/([0-9]\) [0-9]\-[0-9]\

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

劍指 19 正規表示式匹配

題目描述 演算法分析 1.如果字串第乙個字元和模式中的第乙個字元相匹配,那麼字串和模式都後移乙個字元,然後匹配剩餘的。2.如果字串第乙個字元和模式中的第乙個字元相不匹配,直接返回false。如果字串第乙個字元跟模式第乙個字元不匹配,則模式後移2個字元,繼續匹配。如果字串第乙個字元跟模式第乙個字元匹配...