不加 ? 表示貪婪,加 ? 表示勉強,區別如下:
勉強是從左邊乙個乙個地吃直到匹配為止,不加 ?的是一口吃掉整個字串,然後從最後乙個乙個地吐出來直到匹配為止
字串a*****b*****b===
a.*b 將匹配滿足條件最長的字串 a*****b*****b
工作方式:
首先將:a*****b*****b=== 全部吃掉,從右邊乙個乙個地吐出來
1. a*****b*****b=== 不匹配,吐出一字元
2. a*****b*****b== 不匹配,再吐出一字元
3. a*****b*****b= 不匹配,再吐出一字元
4. a*****b*****b 匹配了,結束。如果再不匹配繼續吐,直到沒有字元了,匹配失敗
a.*? 將匹配滿足條件最短的字串 a*****b
工作方式:
從左邊乙個乙個地吃掉字元
1. a 不能匹配表示式,繼續吃
2. a= 不能匹配表示式,繼續吃
3. a== 不能匹配表示式,繼續吃
4. a=== 不能匹配表示式,繼續吃
5. a==== 不能匹配表示式,繼續吃
6. a***** 不能匹配表示式,繼續吃
7. a*****b 呵呵,終於能匹配表示式了,匹配結束,匹配位置留於字元 b 後面,繼續其他的匹配。如果不能匹配則乙個乙個地吃掉整個字串直到吃完為止若還沒有匹配則匹配失敗。
我們一起來學Shell 正規表示式
posix 字符集列表 我們一起來學shell 初識shell 我們一起來學shell shell的變數 我們一起來學shell shell的條件判斷 我們一起來學shell shell的迴圈控制 我們一起來學shell shell的陣列 我們一起來學shell shell的函式 我們一起來學she...
常用的正規表示式和一些特殊需求的正規表示式。
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...
利用正規表示式來實現求乙個數學表示式的和
1 2 60 30 40.0 5 9 2 5 3 7 3 99 4 2998 10 568 14 4 3 16 3 2 求上述表示式的結果 分析 對於上述表示式,涉及的括號及運算子較多,需使用正規表示式來匹配相應的字元,將字元進行分開計算 1 提取最裡層括號裡面的內容 2 計算最裡層括號內的乘除運算...