我有一个正确的正则表达式:
[a1]
[b892jklas]
[klaj218349]
[alllasd]
但我只是想匹配并返回:
a1
b892jklas
klaj218349
alllasd
我正在使用以下命令
cmd | grep -i -o -E '\[[[:alnum:]]\]'
但我不知道如何从结果中排除括号。
答案 0 :(得分:2)
更新:
tr -d '[]'
也有效(感谢@ 1_CR评论)
原始邮件:
... | tr -s "[" "" | tr -s "]" ""
是最简单的解决方案。您还可以使用sed
...
答案 1 :(得分:2)
grep -Po '(<=\[)[a-zA-Z0-9]+(?=\])'
答案 2 :(得分:1)
如果GNU grep是一个选项(也应该针对最新版本的libpcre.so进行编译,以使\K
起作用)
grep -oP '\[[[:space:]]*\K[[:alnum:]]+(?=[[:space:]]*\])'