regex - JQ - 如何为特殊字符定义正则表达式
问题描述
我有一个 JSON 字符串,并试图从中删除所有特殊字符(即由 regex 定义的那些[!@#$%^’&*(),.?":{}|<>]
)。
我尝试过的一些 jq 表达式如下:
sub("[!@#$%^’&*(),.?":{}|<>]"; "")
sub("/[!@#$%^’&*(),.?":{}|<>]/g"; "")
sub("/\W|_/g"; "")
有人可以帮忙吗?
解决方案
使用gsub(_;"")
orsub(_;"";"g")
其中 _ 是一个 jq 表达式,评估为指定正则表达式的相关 JSON 字符串。
由于 _ 必须是 jq 表达式,因此适用于字符串的 jq 转义规则,例如,要转义双引号,请使用\"
. 字符串插值也是允许的。
所以在本例中, _ 可能是:
"[!@#$%^’&*(),.?\":{}|<>]"
另请参阅 jq docs 和Regex 模式,包括所有特殊字符
推荐阅读
- android - 在我的应用程序中将“屏幕缩放”设置更改为“大”完全弄乱了几个屏幕(尤其是片段布局)
- sql - 自动增量选择 SQLite
- angular - AngularTS,订阅测试
- android - 使用 Parcelable 衡量性能
- flask - 使用 flask_uploads 上传图像时,图像未验证
- redhat-brms - 我可以将 Red Hat Developer Studio 与 Red Hat Decision Manager 连接起来吗?
- javascript - 如何在 VueJS SFC 中使用 JavaScript 访问样式定义?
- python - 如何在 Anaconda/Conda 中安装 django cms?
- sql - 联系人数据库设计
- javascript - 访问密钥属性在 Firefox 和 Internet Explorer 浏览器中不起作用