正規表示式:
regular expression
正規表示式:
basic
regexp
:基本
extended regexp
:擴充套件
基本的正規表示式:
元字元:
. 匹配任意單個字元 :
匹配指定範圍內的任意單個字元
[^]:匹配範圍範圍外的任意單個字元
[:digit:],[:lower:],[:upper:],[:punct:],[:space:],[:alpha:],[:alnum:]
,這只是字元集合
如果是範圍內的任意單個字元[[digit]],好好理解一下
字元個數(貪婪模式:盡可能多的去匹配):
*匹配其前面的字元0-n
任意次
a*b a
出現任意次後面跟著b
a.*b顯示a
打頭的,
b結尾的字元 .*
任意長度的任意字元 \?
匹配其前面的字元
0次或者
1次,記得轉義\?
a?b有
ab或者
b的行就可以
\ :匹配前面的那個字元至少
m次,至多n次
:至少三次 :
0-3次
位置錨定:
^:錨定行首,此字元後面的字元必須出現在行首 $
:錨定行尾,此字元前面的字元必須出現在行尾 ^$
:空白行
grep '^$' /etc/inittab | wc -l
\《或\b
:其後面的任意字元必須作為單詞首部出現
\>或\b
:其後面的任意字元必須作為單詞尾部出現 \:
必須出現
root
這個單詞
分組:\(\)
整體,後面可以使用字元再次使用後項引用
\(ab\)*
ab整體出現0到
n次\1 :
第乙個左括號以及與之對應的右括號所包含的所有內容
grep '\(l..e\).*\1' test3.txt
擴充套件的正規表示式:不需要反斜槓進行轉義
字元匹配:
.:匹配單個字元
:匹配括號裡面的字元
[^]:匹配括號內以外的字元
次數匹配:
* :任意次
? :0次或者一次
+ :其前至少一次
位置錨定
^:行開頭
$:行結尾
\<:單詞頭部
\>:單詞尾部
分組()\1,
\2,\3
或者a|b
兩者有其一即可
c|cat匹配c
或者cat
grep -e '(c|c)at'
匹配cat
或cat
正規表示式 正規表示式 總結
非負整數 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...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...