OS X 10.11のbashで正規表現を一致させます。
$ msg='[4] the message'
$ [[ $msg =~ (.+)\t(.+) ]]
$ echo ${BASH_REMATCH[1]}
[4]
$ echo ${BASH_REMATCH[2]}
he message
the']'
とofの't'
間に$msg
タブ文字があります。${BASH_REMATCH[1]}
または、どちらにもタブがありません${BASH_REMATCH[2]}
。どこに行きましたか't'
?
答え1
't'は2つのサブ正規表現の間にあり、\t
テーブルとして解釈されませんt
。フォームはです$'\t'
。
この試み:
$ msg=$'[4]\tthe message'
$ [[ "$msg" =~ (.+)$'\t'(.+) ]]
$ echo ${BASH_REMATCH[1]}
[4]
$ echo ${BASH_REMATCH[2]}
the message