欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核中C語(yǔ)法擴(kuò)展-語(yǔ)句表達(dá)式

汽車電子技術(shù) ? 來(lái)源:宅學(xué)部落 ? 作者:王利濤 ? 2023-02-17 09:30 ? 次閱讀

基礎(chǔ)復(fù)習(xí):表達(dá)式、語(yǔ)句和代碼塊

表達(dá)式

表達(dá)式和語(yǔ)句是 C 語(yǔ)言中的基礎(chǔ)概念。什么是表達(dá)式呢?表達(dá)式就是由一系列操作符和操作數(shù)構(gòu)成的式子。操作符可以是 C 語(yǔ)言標(biāo)準(zhǔn)規(guī)定的各種算術(shù)運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、比較運(yùn)算符等。操作數(shù)可以是一個(gè)常量,也可以是一個(gè)變量。表達(dá)式也可以沒(méi)有操作符,單獨(dú)的一個(gè)常量甚至是一個(gè)字符串,也是一個(gè)表達(dá)式。下面的字符序列都是表達(dá)式:

  • 2 + 3
  • 2
  • i = 2 + 3
  • i = i++ + 3
  • "wit"

表達(dá)式一般用來(lái)數(shù)據(jù)計(jì)算或?qū)崿F(xiàn)某種功能的算法。表達(dá)式有2個(gè)基本屬性:值和類型。如上面的表達(dá)式2+3,它的值為5。根據(jù)操作符的不同,表達(dá)式可以分為多種類型,如:

  • 關(guān)系表達(dá)式
  • 邏輯表達(dá)式
  • 條件表達(dá)式
  • 賦值表達(dá)式
  • 算術(shù)表達(dá)式
  • ……

語(yǔ)句

語(yǔ)句是構(gòu)成程序的基本單元,一般形式如下:

表達(dá)式 ;
i = 2 + 3 ;

表達(dá)式的后面加一個(gè); 就構(gòu)成了一條基本的語(yǔ)句。編譯器在編譯程序、解析程序時(shí),不是根據(jù)物理行,而是根據(jù)分號(hào) ; 來(lái)判斷一條語(yǔ)句的結(jié)束標(biāo)記的。如 i = 2 + 3; 這條語(yǔ)句,你寫(xiě)成下面的形式也是可以編譯通過(guò)的:

i =
2 + 
3
;

代碼塊

不同的語(yǔ)句,使用大括號(hào){}括起來(lái),就構(gòu)成了一個(gè)代碼塊。C 語(yǔ)言允許在代碼塊里定義一個(gè)變量,這個(gè)變量的作用域也僅限于這個(gè)代碼塊內(nèi),因?yàn)榫幾g器就是根據(jù){}來(lái)做入棧出棧操作來(lái)管理變量的作用域的。如下面的程序:

int main(void)
{
    int i = 3;
    printf("i=%d
",i);
    {
        int i = 4;
        printf("i=%d
",i);
    }
    printf("i=%d
",i);
    return 0;
}
運(yùn)行結(jié)果為:
i=3i=4i=3

語(yǔ)句表達(dá)式

語(yǔ)句表達(dá)式的定義

GNU C 對(duì) C 標(biāo)準(zhǔn)作了擴(kuò)展,允許在一個(gè)表達(dá)式里內(nèi)嵌語(yǔ)句,允許在表達(dá)式內(nèi)部使用局部變量、for 循環(huán)和 goto 跳轉(zhuǎn)語(yǔ)句。這樣的表達(dá)式,我們稱之為語(yǔ)句表達(dá)式。語(yǔ)句表達(dá)式的格式如下:

({ 表達(dá)式1; 表達(dá)式2; 表達(dá)式3; })

語(yǔ)句表達(dá)式最外面使用小括號(hào)()括起來(lái),里面一對(duì)大括號(hào){}包起來(lái)的是代碼塊,代碼塊里允許內(nèi)嵌各種語(yǔ)句。語(yǔ)句的格式可以是 “表達(dá)式;”這種一般格式的語(yǔ)句,也可以是循環(huán)、跳轉(zhuǎn)等語(yǔ)句。

跟一般表達(dá)式一樣,語(yǔ)句表達(dá)式也有自己的值。語(yǔ)句表達(dá)式的值為內(nèi)嵌語(yǔ)句中最后一個(gè)表達(dá)式的值。我們舉個(gè)例子,使用語(yǔ)句表達(dá)式求值。

int main(void)
{
  int sum = 0;
  sum =
  ({
    int s = 0;
    for( int i = 0; i < 10; i++)
      s = s + i;
      s;
  });
  printf("sum = %d
",sum);
  return 0;
}

在上面的程序中,通過(guò)語(yǔ)句表達(dá)式實(shí)現(xiàn)了從1到10的累加求和,因?yàn)檎Z(yǔ)句表達(dá)式的值等于最后一個(gè)表達(dá)式的值,所以在 for 循環(huán)的后面,我們要添加一個(gè) s; 語(yǔ)句表示整個(gè)語(yǔ)句表達(dá)式的值。如果不加這一句,你會(huì)發(fā)現(xiàn) sum=0?;蛘吣銓⑦@一行語(yǔ)句改為100; 你會(huì)發(fā)現(xiàn)最后 sum 的值就變成了100,這是因?yàn)檎Z(yǔ)句表達(dá)式的值總等于最后一個(gè)表達(dá)式的值。

語(yǔ)句表達(dá)式內(nèi)使用 goto 跳轉(zhuǎn)

在上面的程序中,我們?cè)谡Z(yǔ)句表達(dá)式內(nèi)定義了局部變量,使用了 for 循環(huán)語(yǔ)句。在語(yǔ)句表達(dá)式內(nèi),我們同樣也可以使用 goto 進(jìn)行跳轉(zhuǎn)。

int main(void)
{
  int sum = 0;
  sum = ({
    int s = 0;     
    for( int i = 0; i < 10; i++)
       s = s + i;        
       goto here;
       s;  
    });
  printf("sum = %d
",sum);
  here:
    printf("here:
");
    printf("sum = %d
",sum);
  return 0;
}

在宏定義中使用語(yǔ)句表達(dá)式

語(yǔ)句表達(dá)式的亮點(diǎn)在于定義復(fù)雜功能的宏。使用語(yǔ)句表達(dá)式來(lái)定義宏,不僅可以實(shí)現(xiàn)復(fù)雜的功能,而且還能避免宏定義帶來(lái)的歧義和漏洞。下面就以一個(gè)宏定義例子,讓我們來(lái)見(jiàn)識(shí)見(jiàn)識(shí)語(yǔ)句表達(dá)式在宏定義中的強(qiáng)悍殺傷力!

假如你此刻正在面試,面試職位是:Linux C 語(yǔ)言開(kāi)發(fā)工程師。面試官給你出了一道題:

請(qǐng)定義一個(gè)宏,求兩個(gè)數(shù)的最大值。

別看這么簡(jiǎn)單的一個(gè)考題,面試官就能根據(jù)你寫(xiě)出的宏,來(lái)判斷你的 C 語(yǔ)言功底,來(lái)決定給不給你 Offer。

合格

對(duì)于學(xué)過(guò) C 語(yǔ)言的同學(xué),寫(xiě)出這個(gè)宏基本上不是什么難事,使用條件運(yùn)算符就能完成:

#define  MAX(x,y)  x > y ? x : y

這是最基本的 C 語(yǔ)言語(yǔ)法,如果連這個(gè)也寫(xiě)不出來(lái),估計(jì)場(chǎng)面會(huì)比較尷尬。面試官為了緩解尷尬,一般會(huì)對(duì)你說(shuō):小伙子,你很棒,回去等消息吧,有消息,我們會(huì)通知你!這時(shí)候,你應(yīng)該明白:不用再等了,趕緊把這篇文章看完,接著面下家。這個(gè)宏能寫(xiě)出來(lái),也不要覺(jué)得你很牛 X,因?yàn)檫@只能說(shuō)明你有了 C 語(yǔ)言的基礎(chǔ),但還有很大的進(jìn)步空間。比如,我們寫(xiě)一個(gè)程序,驗(yàn)證一下我們定義的宏是否正確:

#define MAX(x,y) x > y ? x : y
int main(void)
{
  printf("max=%d",MAX(1,2));
  printf("max=%d",MAX(2,1));
  printf("max=%d",MAX(2,2));
  printf("max=%d",MAX(1!=1,1!=2));
  return 0;
}

測(cè)試程序嗎,我們肯定要把各種可能出現(xiàn)的情況都測(cè)一遍。這不,測(cè)試第4行語(yǔ)句,當(dāng)宏的參數(shù)是一個(gè)表達(dá)式,發(fā)現(xiàn)實(shí)際運(yùn)行結(jié)果為 max=0,跟我們預(yù)期結(jié)果 max=1 不一樣。這是因?yàn)?,宏展開(kāi)后,就變成了這個(gè)樣子:

printf("max=%d",1!=1>1!=2?1!=1:1!=2);

因?yàn)楸容^運(yùn)算符 > 的優(yōu)先級(jí)為6,大于 !=(優(yōu)先級(jí)為7),所以展開(kāi)的表達(dá)式,運(yùn)算順序發(fā)生了改變,結(jié)果就跟我們的預(yù)期不一樣了。為了避免這種展開(kāi)錯(cuò)誤,我們可以給宏的參數(shù)加一個(gè)小括號(hào)()來(lái)防止展開(kāi)后,表達(dá)式的運(yùn)算順序發(fā)生變化。這樣的宏才能算一個(gè)合格的宏:

#define MAX(x,y) (x) > (y) ? (x) : (y)

中等

上面的宏,只能算合格,但還是存在漏洞。比如,我們使用下面的代碼測(cè)試:

#define MAX(x,y) (x) > (y) ? (x) : (y)
int main(void)
{
  printf("max=%d",3 + MAX(1,2));
  return 0;
}

在程序中,我們打印表達(dá)式 3 + MAX(1, 2) 的值,預(yù)期結(jié)果應(yīng)該是5,但實(shí)際運(yùn)行結(jié)果卻是1。我們展開(kāi)后,發(fā)現(xiàn)同樣有問(wèn)題:

3 + (1) > (2) ? (1) : (2);

因?yàn)檫\(yùn)算符 + 的優(yōu)先級(jí)大于比較運(yùn)算符 >,所以這個(gè)表達(dá)式就變?yōu)?>2?1:2,最后結(jié)果為1也就見(jiàn)怪不怪了。此時(shí)我們應(yīng)該繼續(xù)修改這個(gè)宏:

#define MAX(x,y) ((x) > (y) ? (x) : (y))

使用小括號(hào)將宏定義包起來(lái),這樣就避免了當(dāng)一個(gè)表達(dá)式同時(shí)含有宏定義和其它高優(yōu)先級(jí)運(yùn)算符時(shí),破壞整個(gè)表達(dá)式的運(yùn)算順序。如果你能寫(xiě)到這一步,說(shuō)明你比前面那個(gè)面試合格的同學(xué)強(qiáng),前面那個(gè)同學(xué)已經(jīng)回去等消息了,我們接著面試下一輪。

良好

上面的宏,雖然解決了運(yùn)算符優(yōu)先級(jí)帶來(lái)的問(wèn)題,但是仍存在一定的漏洞。比如,我們使用下面的測(cè)試程序來(lái)測(cè)試我們定義的宏:

#define MAX(x,y) ((x) > (y) ? (x) : (y))
int main(void)
{    
  int i = 2;
  int j = 6;
  printf("max=%d",  MAX(i++,j++));
  return 0;
}

在程序中,我們定義兩個(gè)變量 i 和 j,然后比較兩個(gè)變量的大小,并作自增運(yùn)算。實(shí)際運(yùn)行結(jié)果發(fā)現(xiàn) max = 7,而不是預(yù)期結(jié)果 max = 6。這是因?yàn)樽兞?i 和 j 在宏展開(kāi)后,做了兩次自增運(yùn)算,導(dǎo)致打印出 i 的值為7。

遇到這種情況,那該怎么辦呢? 這時(shí)候,語(yǔ)句表達(dá)式就該上場(chǎng)了。我們可以使用語(yǔ)句表達(dá)式來(lái)定義這個(gè)宏,在語(yǔ)句表達(dá)式中定義兩個(gè)臨時(shí)變量,分別來(lái)暫儲(chǔ) i 和 j 的值,然后進(jìn)行比較,這樣就避免了兩次自增、自減問(wèn)題。

#define MAX(x,y)({  
    int _x = x;       int _y = y;       _x > _y ? _x : _y; })
int main(void)
{
    int i = 2;
    int j = 6;
    printf("max=%d",    MAX(i++,j++));  
    return 0;
}

在語(yǔ)句表達(dá)式中,我們定義了2個(gè)局部變量 _x、_y 來(lái)存儲(chǔ)宏參數(shù) x 和 y 的值,然后使用 _x 和 _y 來(lái)比較大小,這樣就避免了 i 和 j 帶來(lái)的2次自增運(yùn)算問(wèn)題。

你能堅(jiān)持到了這一關(guān),并寫(xiě)出這樣自帶 BGM 的宏,面試官心里可能已經(jīng)有了給你 Offer 的意愿了。但此時(shí)此刻,千萬(wàn)不要驕傲!為了徹底打消面試官的心理顧慮,我們需要對(duì)這個(gè)宏繼續(xù)優(yōu)化。

優(yōu)秀

在上面這個(gè)宏中,我們定義的兩個(gè)臨時(shí)變量數(shù)據(jù)類型是 int 型,只能比較兩個(gè)整型的數(shù)據(jù)。那對(duì)于其它類型的數(shù)據(jù),就需要重新再定義一個(gè)宏了,這樣太麻煩了!我們可以基于上面的宏繼續(xù)修改,讓它可以支持任意類型的數(shù)據(jù)比較大小:

#define MAX(type,x,y)({  
    type _x = x;      type _y = y;      _x > _y ? _x : _y; })

int main(void)
{
    int i = 2;
    int j = 6;
    printf("max=%d
",    MAX(int,i++,j++));
    printf("max=%f
",    MAX(float,3.14,3.15));
    return 0;
}

在這個(gè)宏中,我們添加一個(gè)參數(shù):type,用來(lái)指定臨時(shí)變量 _x 和 _y 的類型。這樣,我們?cè)诒容^兩個(gè)數(shù)的大小時(shí),只要將2個(gè)數(shù)據(jù)的類型作為參數(shù)傳給宏,就可以比較任意類型的數(shù)據(jù)了。如果你能在面試中,寫(xiě)出這樣的宏,面試官肯定會(huì)非常高興,他一般會(huì)跟你說(shuō):稍等,待會(huì) HR 會(huì)跟你談待遇問(wèn)題。恭喜你,你拿到 Offer 了!

語(yǔ)句表達(dá)式在 Linux 內(nèi)核中的使用

語(yǔ)句表達(dá)式,作為 GNU C 對(duì) C 標(biāo)準(zhǔn)的一個(gè)擴(kuò)展,在內(nèi)核中,尤其是在內(nèi)核的宏定義中,被大量的使用。使用語(yǔ)句表達(dá)式定義宏,不僅可以實(shí)現(xiàn)復(fù)雜的功能,還可以避免宏定義帶來(lái)的一些歧義和漏洞。比如在 Linux 內(nèi)核中,max_tmin_t 的宏定義,就使用了語(yǔ)句表達(dá)式:

#define min_t(type, x, y) ({
    type __min1 = (x); 
    type __min2 = (y); 
    __min1 < __min2 ? __min1 : __min2; })
#define max_t(type, x, y) ({ 
    type __max1 = (x); 
    type __max2 = (y); 
    __max1 > __max2 ? __max1 : __max2; })

除此之外,在 Linux 內(nèi)核、GNU 開(kāi)源軟件中,你會(huì)發(fā)現(xiàn),還有大量的宏定義使用了語(yǔ)句表達(dá)式。通過(guò)本節(jié)教程的學(xué)習(xí),相信大家以后再碰到這種使用語(yǔ)句表達(dá)式定義的宏,肯定就知道是怎么回事了,心中有丘壑,再也不用慌。

備注

本教程是《C語(yǔ)言嵌入式Linux高級(jí)編程》第5期:Linux內(nèi)核中的GNU C語(yǔ)法擴(kuò)展,文本預(yù)覽版,如果想系統(tǒng)學(xué)習(xí)Linux內(nèi)核中的各種GNU C擴(kuò)展及使用技巧,可百度搜索:“王利濤”,到51CTO學(xué)院或CSDN學(xué)院點(diǎn)擊相關(guān)課程即可開(kāi)始系統(tǒng)學(xué)習(xí)。

如果您手頭暫時(shí)沒(méi)有 Linux 學(xué)習(xí)環(huán)境,也可以在 Windows 環(huán)境下安裝 C-Free 學(xué)習(xí)。教程中的 C 語(yǔ)言示例程序在 C-Free 環(huán)境下面也能編譯通過(guò)。當(dāng)然在這里,還是建議您使用虛擬機(jī)安裝一個(gè) Linux 學(xué)習(xí)環(huán)境,一個(gè)良好的環(huán)境更有利于我們的學(xué)習(xí),在安裝過(guò)程有什么疑惑,可以通過(guò)郵件([email protected])聯(lián)系,也可以加入QQ群(475504428),參與技術(shù)討論。

微信公眾號(hào):宅學(xué)部落

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11350

    瀏覽量

    210466
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137780
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    316

    瀏覽量

    21749
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    172

    瀏覽量

    11116
  • 操作符
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    9063
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是正則表達(dá)式?正則表達(dá)式如何工作?哪些語(yǔ)法規(guī)則適用正則表達(dá)式?

    正則表達(dá)式又稱規(guī)則表達(dá)式(Regular Expression,在代碼中常簡(jiǎn)寫(xiě)為 regex、regexp 或 RE),是一種用于匹配、查找、替換文本的強(qiáng)大工具。它能夠以特定的模式匹配字符串,從而
    的頭像 發(fā)表于 11-03 14:41 ?3983次閱讀
    什么是正則<b class='flag-5'>表達(dá)式</b>?正則<b class='flag-5'>表達(dá)式</b>如何工作?哪些<b class='flag-5'>語(yǔ)法</b>規(guī)則適用正則<b class='flag-5'>表達(dá)式</b>?

    【跟我學(xué)單片機(jī)C語(yǔ)言】全面分析C51表達(dá)式語(yǔ)句及仿真器

    在前面的課程的例子里,也簡(jiǎn)單理解過(guò)一些語(yǔ)句的使用方法,能看出C語(yǔ)言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。C 語(yǔ)言供給了相當(dāng)豐富的程序控制語(yǔ)句。學(xué)習(xí)掌
    發(fā)表于 12-12 10:27

    總結(jié)linux腳本語(yǔ)法和正則表達(dá)式的應(yīng)用

    每日學(xué)一點(diǎn)之linux腳本語(yǔ)法以及正則表達(dá)式基礎(chǔ)
    發(fā)表于 11-08 09:23

    Linux內(nèi)核C語(yǔ)言語(yǔ)法擴(kuò)展

    收集一些感覺(jué)比較好的博客鏈接,方便以后再看Linux 內(nèi)核C 語(yǔ)言語(yǔ)法擴(kuò)展
    發(fā)表于 12-15 06:04

    防范表達(dá)式的失控

    C 語(yǔ)言中,表達(dá)式是最重要的組成部分之一,幾乎所有的代碼都由表達(dá)式構(gòu)成。表達(dá)式的使用如此廣泛,讀者也許會(huì)產(chǎn)生這樣的疑問(wèn),像+ 、- 、3 、/ 、& & 這樣簡(jiǎn)單的運(yùn)算也會(huì)出現(xiàn)
    發(fā)表于 04-22 16:57 ?13次下載

    C語(yǔ)言程序設(shè)計(jì)--運(yùn)算符與表達(dá)式

    c語(yǔ)言對(duì)數(shù)據(jù)有很強(qiáng)的表達(dá)能力,具有十分豐富的運(yùn)算符,利用這些運(yùn)算符可以組成各種表達(dá)式語(yǔ)句。運(yùn)算符就是完成某種特定運(yùn)算的符號(hào)表達(dá)式則是由運(yùn)算
    發(fā)表于 07-14 21:30 ?46次下載

    第十課 C51表達(dá)式語(yǔ)句及仿真器

    豐富的程序控制語(yǔ)句。學(xué)習(xí)掌握這些語(yǔ)句的使用方法也是單片機(jī)C語(yǔ)言學(xué)習(xí)的重點(diǎn)。 表達(dá)式語(yǔ)句是最基本
    發(fā)表于 11-22 12:45 ?627次閱讀
    第十課 <b class='flag-5'>C</b>51<b class='flag-5'>表達(dá)式</b><b class='flag-5'>語(yǔ)句</b>及仿真器

    51單片機(jī)表達(dá)式語(yǔ)句的用法解析

    以上的都是合法的表達(dá)式語(yǔ)句。在我收到的一些網(wǎng)友的Email,發(fā)現(xiàn)很多初學(xué)的朋友往往在編寫(xiě)調(diào)試程序時(shí)忽略了分號(hào)“;”,造成程序不法被正常的編譯。我個(gè)人的經(jīng)驗(yàn)是在遇到編譯錯(cuò)誤時(shí)先語(yǔ)法是否
    發(fā)表于 04-15 15:17 ?3749次閱讀
    51單片機(jī)<b class='flag-5'>表達(dá)式</b><b class='flag-5'>語(yǔ)句</b>的用法解析

    Python正則表達(dá)式指南

    本文介紹了Python對(duì)于正則表達(dá)式的支持,包括正則表達(dá)式基礎(chǔ)以及Python正則表達(dá)式標(biāo)準(zhǔn)庫(kù)的完整介紹及使用示例。本文的內(nèi)容不包括如何編寫(xiě)高效的正則表達(dá)式、如何優(yōu)化正則
    發(fā)表于 03-26 09:13 ?10次下載
    Python正則<b class='flag-5'>表達(dá)式</b>指南

    C語(yǔ)言如何使用正則表達(dá)式

    C語(yǔ)言的正則表達(dá)式規(guī)則,特此跟大家分享。
    的頭像 發(fā)表于 03-16 08:41 ?5021次閱讀

    Lambda表達(dá)式詳解

    C++11的Lambda表達(dá)式用于 **定義并創(chuàng)建匿名的函數(shù)對(duì)象** ,以簡(jiǎn)化編程工作。下面看一下Lambda表達(dá)式的基本構(gòu)成。
    的頭像 發(fā)表于 02-09 11:28 ?1239次閱讀

    C語(yǔ)言的表達(dá)式

    C語(yǔ)言中,表達(dá)式是由操作符和操作數(shù)組成。表達(dá)式可以由一個(gè)或者多個(gè)操作數(shù)組成,不同的操作符與操作數(shù)組成不同的表達(dá)式,因此,表達(dá)式才是
    的頭像 發(fā)表于 02-21 15:09 ?1442次閱讀
    <b class='flag-5'>C</b>語(yǔ)言的<b class='flag-5'>表達(dá)式</b>

    shell腳本基礎(chǔ):正則表達(dá)式grep

    Linux上有許多命令可以使用正則表達(dá)式,其中最常見(jiàn)的是grep命令和sed命令。正則表達(dá)式有多種類型,每種類型可以使用的元字符類型不同。最常見(jiàn)的是基本正則
    的頭像 發(fā)表于 05-29 09:29 ?1313次閱讀
    shell腳本基礎(chǔ):正則<b class='flag-5'>表達(dá)式</b>grep

    Python的正則表達(dá)式

    字符串的特征,這樣我們就可以快速、高效地處理大量的文本數(shù)據(jù)。 基礎(chǔ)語(yǔ)法 在Python,使用re模塊來(lái)操作正則表達(dá)式。re模塊提供了很多函數(shù),用于對(duì)字符串進(jìn)行正則匹配和替換。以下是一些常用的正則
    的頭像 發(fā)表于 06-21 16:52 ?1039次閱讀

    linux正則表達(dá)式匹配字符串

    Linux操作系統(tǒng),正則表達(dá)式是一種強(qiáng)大的模式匹配工具,它可以用于在文本查找、替換和篩選特定的字符串。準(zhǔn)確掌握正則表達(dá)式
    的頭像 發(fā)表于 11-23 10:26 ?789次閱讀