regex - 使用 sed 从字符串中提取值
问题描述
我的示例字符串如下:
"firstName":"Alice", "dealersCode":850503,"productCode":"99110X0"
我想从中850503
提取dealersCode
。为此,我使用 sed 尝试了以下正则表达式:
sed -n 's/.*dealersCode:\([0-9][0-9][0-9][0-9][0-9][0-9]*\).*/\1/p'
上面的命令什么也没打印,所以我相信我做错了什么。我在https://regex101.com/上创建了以下正则表达式:
(?:\"dealersCode|\')(?<key>[^"]*)(?:\"|\')(?=:)(?:\:\s*)(?:\"|\')?(?<value>true|false|[0-9a-zA-Z\+\-\.\$]*)
它不适用于 bash。
我应该怎么做才能解决这个问题?
提前致谢
解决方案
如果要找到的字符串:
- 肯定存在于字符串中,
- 并且是第一个数字块
GNU grep
工作:
grep -wo '[0-9]*' <<< \
'"firstName":"Alice", "dealersCode":850503,"productCode":"99110X0"'
如果字符串可能不存在,这会更好:
grep 'dealersCode[^,]*,' | grep -wo '[0-9]*' <<< \
'"firstName":"Alice", "dealersCode":850503,"productCode":"99110X0"'
推荐阅读
- ios - Swift HealthKit UpdateQuery 只被调用一次
- c# - ASP.NET Core 调试不适用于 OnGetAsync
- python - Python3 和 Tkinter - 如何检查打开的笔记本选项卡?
- javascript - React Native 和存储 JSON
- javascript - 克隆并继续前一个 div 上发生的事情
- c - 如何在 AWS EC2 Linux 实例上运行编译和运行 ac 文件?
- bootstrap-4 - 在 Codepen 上出现错误:未捕获的 ReferenceError:$ 未定义
- javascript - ImagePicker 设置数据状态
- google-apps-script - 将徽标嵌入电子邮件
- ibm-cloud - IBM 沃森问题