• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Bash 程式設計教學與範例:正規表示法比對字串

介紹如何在 Bash 指令稿中使用正規表示法(regular expression)匹配字串。

正規表示法比對字串

在 Bash 指令稿中若需要使用到正規表示法(regular expression)來比對字串內容,可以透過雙中括號搭配 =~ 運算子的方式:

# 含有文字的變數
str="Hello, world."

# 以正規表示法比對字串
if [[ $str =~ ^Hello ]];
then
  echo "比對成功。"
else
  echo "比對失敗。"
fi
比對成功。

如果只需要在匹配成功時,執行指定的動作,可以使用以下這種簡潔的寫法:

# 簡潔的寫法
[[ $str =~ ^Hello ]] && echo "比對成功。"
比對成功。

取得匹配成功的字串

在以正規表示法匹配字串時,如果想要取得匹配成功的文字內容,可以使用小括號將要擷取的部分包起來,並透過 BASH_REMATCH 這個特殊變數來取得匹配結果:

# 含有文字的變數
str="John Smith"

# 以正規表示法比對字串
if [[ $str =~ ^([A-Za-z]+) ([A-Za-z]+)$ ]];
then
  echo "完整比對字串:${BASH_REMATCH[0]}"
  echo "第 1 部分字串:${BASH_REMATCH[1]}"
  echo "第 2 部分字串:${BASH_REMATCH[2]}"
else
  echo "比對失敗。"
fi
完整比對字串:John Smith
第 1 部分字串:John
第 2 部分字串:Smith

若以正規表示法比對成功時,BASH_REMATCH[0] 就會包含整個正規表示法所比對到的字串內容,而 BASH_REMATCH[1]、BASH_REMATCH[2] 就會包含第一個與第二個小括號所對應的內容,若有更多小括號則以此類推。

分類:Linux 標籤:Bash

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • Linux 檢查、測試 CPU AES-NI 硬體加速加密指令集教學
  • CentOS Linux 7.9 自行編譯、安裝 OpenSSH 9.0p1 伺服器教學與範例
  • Python 使用 zipfile 模組壓縮、解壓縮 ZIP 檔案教學與範例
  • Python 以 LINE Notify 自動傳送即時訊息、圖片教學與範例
  • Linux 使用 Prometheus 與 Grafana 監控伺服器狀態、發送告警 Email 簡訊教學與範例
  • Linux 設定 pam_tty_audit 記錄 SSH 使用者操作指令教學與範例
  • Linux 封鎖、解鎖登入失敗次數過多的帳號 pam_faillock 教學與範例
  • Python 使用 pytube 自動下載 YouTube 影片教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide