欠落している文字を一致させる単純なBash正規表現(OS X)

欠落している文字を一致させる単純なBash正規表現(OS X)

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

関連情報