【问题标题】:Escaping " in bash script regular expression [duplicate]在bash脚本正则表达式中转义“ [重复]
【发布时间】:2021-09-17 17:07:21
【问题描述】:

我正在尝试获取 id 值但不能。我还尝试使用\" 转义"

text="Id": "d246ad6f48f7"
[[ "${text}" =~ (.*)": "(.*)" ]]
echo ${BASH_REMATCH[2]}

【问题讨论】:

  • 以后请先搜索一下您的问题是否已经被问过。这回答了你的问题了吗? bash regex with quotes?

标签: regex bash


【解决方案1】:

调用text="Id": "d246ad6f48f7" 返回错误d246ad6f48f7: command not found。你应该打电话给text='"Id": "d246ad6f48f7"'。但在 bash 正则表达式中很难匹配 "。我建议像这样使用sed

echo '"Id": "d246ad6f48f7"' | sed -E '{s/"(.*)": "(.*)"/\2/}'
d246ad6f48f7

sed的解释:

  • -E 扩展正则表达式
  • \2第二个反向引用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多