• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
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

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

公益

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

Copyright © 2021 · Office Guide