gpt4 book ai didi

regex - 为什么 BASH_REMATCH 不适用于引用的正则表达式?

转载 作者:行者123 更新时间:2023-11-29 08:45:53 25 4
gpt4 key购买 nike

代码是这样的:

#!/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$

有人对此有想法吗?

最佳答案

在您的 bash REGEX 中,您应该删除引号。这就是为什么它不起作用。

如果你有空间,我建议使用这种方式:

#!/bin/bash
x='foo bar bletch'
if [[ $x =~ foo[[:space:]](bar)[[:space:]]bl(.*) ]]
then
echo The regex matches!
echo $BASH_REMATCH
echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[2]}
fi

关于regex - 为什么 BASH_REMATCH 不适用于引用的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com