我想将方括号内的逗号替换为空格(并删除方括号)。我使用了RecyclerView.ViewHolder
,但是我能想到的解决方案取决于列表中的元素。
sed
sed 's/\[\(.*\), \(.*\)\]/\1 \2/g'
# [-0.0, 1.23] => -0.0 1.23 (works)
# [-0.0, 1.23, 4.56] => -0.0, 1.23 4.56 (doesn't work)
# foo=[12.3, 4.5, 3.0, 4.1], bar=123.0, xyz=6.7 => foo=12.3, 4.5, 3.0 4.1, bar=123.0, xyz=6.7` (doesn't work, expected: foo=12.3 4.5 3.0 4.1, bar=123.0, xyz=6.7)
有什么方法可以用来做我想做的事吗?
答案 0 :(得分:3)
考虑此测试文件:
:a
要删除方括号内的所有逗号,也要删除方括号:
a
s/(\[[^],]*), */\1 /
这定义了标签[^],]
。
]
这会查找方括号内的第一个逗号并将其删除。
,
与(\[[^],]*)
或[
以外的任何字符匹配。因此,]
匹配,
,后跟任意数量的非ta
或a
字符,并将结果存储在组1中。
s/\[([^]]*)\]/\1/g
如果上述替换导致更改,请跳回到标签[^]]
,以便我们可以再次尝试替换。
]
删除逗号后,这将删除方括号。
请注意,\[([^]]*)\]
与不是 [
的任何字符匹配。因此]
与]
匹配,后跟if (validateRejectionCategory(rejectionData[0])) {
......
}
以外的任意数量的任何字符,后跟REJECTION_CATEOGRY_POSITION
。换句话说,它匹配一个括号内的表达式,表达式的内容(不包括方括号)存储在组1中。