正規表示式

2022-03-26 19:00:27 字數 1535 閱讀 5584

1.定義:正規表示式是一種基礎的模式匹配(pattern-matching)技術。

2.模式:將內部資料在結構上抽象為字串;

模式指的就是資料結構。

3.匹配: list(「a」,」b」,」c」) match ;

匹配指的就是鍊錶匹配。

4.視覺化:

這個**可以將正規表示式變成圖形視覺化,超強輔助理解!

(1) $(( )) 中的變數名稱,可用於其前面加 $ 符號來替換,也可以不加$

[root@localhost tmp]# a=1; b=2; c=4

[root@localhost tmp]#

echo $((a+b*c))

9[root@localhost tmp]#

echo $(($a+$b*$c))

9

(2) $( )與` `都是用來作命令替換的:先完成裡面的命令列,然後將其結果替換出來,再重組成新的命令列。

[root@localhost tmp]# echo today is $(date

"+%y-%m-%d")

today is

2020-04-11

[root@localhost tmp]#

echo today is `date

"+%y-%m-%d"`

today is

2020-04-11

(3)說明:

1.在多層次的復合替換中,` `必須要額外的跳脫處理(反斜線):轉義=跳脫=escape,如轉義字元—

escape character—esc

2.並不是所有的類unix系統都支援$( ),但反引號` `是肯定支援的。

=~ 表示的是匹配

&& 是短路與,前者若為假則不執行後者

[[ ]] 是if判斷使用正規表示式的固定格式

^ 是開頭,$ 是結尾

[0-9] 是1個範圍內的數字

+ 是匹配前面1到n個

^[0-9]+$ 就是:以數字開頭並結尾的,整行都是數字。

整句的意思是:如果變數$i 匹配到了以1到多個數字開頭並結尾的,那麼就 echo 1

[root@localhost linux_shell]# ifconfig ens33 | egrep -o "

inet [^ ]*

" | grep -o "

[0-9.]*

"10.0.0.100

[root@localhost linux_shell]# ifconfig ens33 | egrep -o "

netmask [^ ]*

" | grep -o "

[0-9.]*

"255.255.255.0

[^ ]*表示非空格字串行  注意^單獨地在中括號裡面表示「非」,如果在外面則有可能表示「開頭」

[0-9.]*表示點分數字序列  匹配[ ]內數字和點符號中的任意單一字元,*表示匹配多次,可以表示點分數顯的ip位址。

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

非負整數 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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...