🔥

bashのif文で正規表現を使う方法

2022/07/26に公開約500字

bash の if文で正規表現を使う方法。

書式

ダブルブラケット" [[ " を用います。

[[ 文字列 =~ 条件 ]]

サンプル

#!/bin/bash

uid="gorirazilla"

if [[ $uid =~ (go)([rira]+)([zilla]+) ]] ;then
    echo ${#BASH_REMATCH[@]}
    echo ${BASH_REMATCH[@]}
    echo ${BASH_REMATCH[0]}
    echo ${BASH_REMATCH[1]}${BASH_REMATCH[2]}
    echo ${BASH_REMATCH[1]}${BASH_REMATCH[3]}
fi

出力

4
gorirazilla go rira zilla
gorirazilla
gorira
gozilla
  • $BASH_REMATCH に条件に一致した内容が配列として格納される。
  • ${BASH_REMATCH[0]} に一致した文字列全体が格納。
  • ${BASH_REMATCH[1]} 以降には一致した部分文字列が順番に格納される。

Discussion

ログインするとコメントできます