<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 11.3 延伸正則表達式 事實上,一般讀者只要了解基礎型的正則表達式大概就已經相當足夠了,不過,某些時刻為了要簡化整個指令操作, 了解一下使用范圍更廣的延伸型正則表達式的表示式會更方便呢!舉個簡單的例子好了,在上節的[例題三的最后一個例子](../Text/index.html#blank_line)中,我們要去除空白行與行首為 # 的行列,使用的是 > grep -v '^$' regular_express.txt | grep -v '^#' 需要使用到管線命令來搜尋兩次!那么如果使用延伸型的正則表達式,我們可以簡化為: > egrep -v '^$|^#' regular_express.txt 延伸型正則表達式可以通過群組功能“ | ”來進行一次搜尋!那個在單引號內的管線意義為“或 or”啦! 是否變的更簡單呢?此外,grep 默認僅支持基礎正則表達式,如果要使用延伸型正則表達式,你可以使用 grep -E , 不過更建議直接使用 egrep !直接區分指令比較好記憶!其實 egrep 與 grep -E 是類似命令別名的關系啦! 熟悉了正則表達式之后,到這個延伸型的正則表達式,你應該也會想到,不就是多幾個重要的特殊符號嗎? ^_^y 是的~所以,我們就直接來說明一下,延伸型正則表達式有哪幾個特殊符號?由于下面的范例還是有使用到 regular_express.txt ,不巧的是剛剛我們可能將該文件修改過了 @_@,所以,請重新下載該文件來練習喔! | RE 字符 | 意義與范例 | | --- | --- | | + | 意義:重復“一個或一個以上”的前一個 RE 字符 范例:搜尋 (god) (good) (goood)... 等等的字串。 那個 o+ 代表“一個以上的 o ”所以,下面的執行成果會將第 1, 9, 13 行列出來。 `> egrep -n 'go+d' regular_express.txt` | | ? | 意義:“零個或一個”的前一個 RE 字符 范例:搜尋 (gd) (god) 這兩個字串。 那個 o? 代表“空的或 1 個 o ”所以,上面的執行成果會將第 13, 14 行列出來。 有沒有發現到,這兩個案例( 'go+d' 與 'go?d' )的結果集合與 'go*d' 相同? 想想看,這是為什么喔! ^_^ `> egrep -n 'go?d' regular_express.txt` | | &#124; | 意義:用或( or )的方式找出數個字串 范例:搜尋 gd 或 good 這兩個字串,注意,是“或”! 所以,第 1,9,14 這三行都可以被打印出來喔!那如果還想要找出 dog 呢? `> egrep -n 'gd&#124;good' regular_express.txt` `> egrep -n 'gd&#124;good&#124;dog' regular_express.txt` | | () | 意義:找出“群組”字串 范例:搜尋 (glad) 或 (good) 這兩個字串,因為 g 與 d 是重復的,所以, 我就可以將 la 與 oo 列于 ( ) 當中,并以 &#124; 來分隔開來,就可以啦! `> egrep -n 'g(la&#124;oo)d' regular_express.txt` | | ()+ | 意義:多個重復群組的判別 范例:將“AxyzxyzxyzxyzC”用 echo 叫出,然后再使用如下的方法搜尋一下! `> echo 'AxyzxyzxyzxyzC' &#124; egrep 'A(xyz)+C'` | 上面的例子意思是說,我要找開頭是 A 結尾是 C ,中間有一個以上的 "xyz" 字串的意思~ 以上這些就是延伸型的正則表達式的特殊字符。另外,要特別強調的是,那個 ! 在正則表達式當中并不是特殊字符, 所以,如果你想要查出來文件中含有 ! 與 &gt; 的字行時,可以這樣: ``` > grep -n '[!&gt;]' regular_express.txt ``` 這樣可以了解了嗎?常常看到有陷阱的題目寫:“反向選擇這樣對否? '[!a-z]'?”, 呵呵!是錯的呦~要 '[^a-z] 才是對的!至于更多關于正則表達式的進階文章,請參考文末的參考數據[[2]](#ps2)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看