JQ-如何为特殊字符定义正则表达式



我有一个JSON字符串,正在尝试删除所有特殊字符(即正则表达式[!@#$%^’&*(),.?":{}|<>]定义的那些(

我尝试过的一些jq表达式如下:

sub("[!@#$%^’&*(),.?":{}|<>]"; "") 
sub("/[!@#$%^’&*(),.?":{}|<>]/g"; "")
sub("/W|_/g"; "")

有人能帮忙吗?

使用gsub(_;"")sub(_;"";"g"),其中_是一个jq表达式,用于计算指定正则表达式的相关JSON字符串。

由于_必须是jq表达式,因此适用字符串的jq转义规则,例如,要转义双引号,请使用"。字符串插值也是允许的。

所以在目前的例子中,_可以是:

"[!@#$%^’&*(),.?":{}|<>]"

另请参阅jq文档和Regex模式,包括所有特殊字符

最终工作解决方案:

tags: (.title
| sub("([!@#$%^’&*(),.?|])"; ""; "g")
| split(" ")

以及,转义撇号或单引号(如果需要(:

tags: (.title
| sub("([!@#$%^’'"'"';:&*(),.?|])"; ""; "g")
| split(" ")

最新更新