gpt4 book ai didi

regex - 使用正则表达式的 Bash 变量替换无法按预期工作

转载 作者:行者123 更新时间:2023-12-01 11:30:20 25 4
gpt4 key购买 nike

给定一个包含以下字符串的 bash 变量:

INPUT="Cookie: cf_clearance=foo; __cfduid=bar;"
为什么是替换 ${INPUT/cf_clearance=[^;]*;/}产生输出: Cookie: 而不是我所期望的: Cookie: __cfduid=bar;在在线正则表达式验证器中测试相同的正则表达式确认 cf_clearance=[^;]*;应该匹配 cf_clearance=foo;只有,而不是字符串的其余部分。
我在这里做错了什么?

最佳答案

使用实际的正则表达式匹配功能而不是参数扩展,它适用于模式。

[[ $INPUT =~ (.*)(cf_clearance=[^;]*;)(.*) ]]
ans=${BASH_REMATCH[1]}${BASH_REMATCH[3]}

您还可以使用扩展模式,它相当于一个强大的正则表达式:
shopt -s extglob
$ echo "${INPUT/cf_clearance=*([^;]);/}"

关于regex - 使用正则表达式的 Bash 变量替换无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48542352/

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