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'는 두 하위 정규 표현식 사이에 있으며 \t
테이블로 해석되지 않고 t
. 양식은 입니다 $'\t'
.
이 시도:
$ msg=$'[4]\tthe message'
$ [[ "$msg" =~ (.+)$'\t'(.+) ]]
$ echo ${BASH_REMATCH[1]}
[4]
$ echo ${BASH_REMATCH[2]}
the message