【发布时间】:2018-01-31 12:34:34
【问题描述】:
给定一个包含以下字符串的 bash 变量:
INPUT="Cookie: cf_clearance=foo; __cfduid=bar;"
为什么替换 ${INPUT/cf_clearance=[^;]*;/} 会产生输出:Cookie: 而不是我所期望的:Cookie: __cfduid=bar;
在在线正则表达式验证器中测试相同的正则表达式可确认 cf_clearance=[^;]*; 应仅匹配 cf_clearance=foo;,而不是字符串的其余部分。
我在这里做错了什么?
【问题讨论】:
-
谁告诉你 bash 支持 RegEx 的内置字符串替换???
-
@iBug 但据我所知确实如此。像
${MYVAR//[a-z]/X}这样更简单的模式可以工作。 -
那不是正则表达式。它只是一个括号表达式,甚至被
printf()和scanf()支持(如果您编写 C 程序)。 -
谢谢,现在我明白我的期望是错误的。直到!
标签: regex bash substitution