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

讀者互動方式

發佈留言 取消回覆

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

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

公益

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

Copyright © 2021 · Office Guide