【发布时间】:2019-08-10 08:39:37
【问题描述】:
我真的不知道我在做什么。 在变量 a 中,我想在“比特币”第一次出现之后找到“$”的第一次出现,并打印它之后的所有内容,直到第一个换行符。 我有以下代码:
a = 'something Bitcoin something againe $jjjkjk\n againe something'
if [[ $a =~ .*Bitcoin.*[\$](.*).* ]]; then
echo "${BASH_REMATCH[1]}"
else
echo "no"
fi
在这个例子中,我想得到'jjjkjk'。我得到的只是“不”。 这段代码可能真的有缺陷,我没有这方面的经验。我认为问题可能出在“$”符号上。请帮忙!
【问题讨论】:
-
试试ideone.com/pvPKSE。请注意,您的
a声明不正确,并且它内部没有$,因为它是插值的。此外,您正在尝试将 PCRE 正则表达式与 Bash 一起使用,这是不对的。.这里匹配任何字符,包括换行符。[\s\S]匹配\、s或S。 -
Ty,这很有帮助。我编辑了代码,但还是不太好。(我是否正确地编辑了它?)
-
不,不对,你的字符串没有换行符。