代码如下:
#!/bin/bash
if [[ foobarbletch =~ 'foo(bar)bl(.*)' ]]
then
echo "The regex matches!"
echo $BASH_REMATCH
echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[2]}
fi
当我尝试运行它时,它没有显示任何东西:
bash-3.2$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.
bash-3.2$ /bin/bash test_rematch.bash
bash-3.2$
有人对此有什么想法吗?
\
或' '
或" "
(选择你的毒药)来表示一个空格(第一个没显示好,它是反斜杠后跟着一个空格)。 - doubleDown[[ foobarbletch =~ 'foo'('bar')'bl'(.*) ]]
。因此,你可以引用任何空格,但不能将整个字符串用引号括起来。 - Mark Reed