Regex 正则表达式匹配括号之间的字符串

Regex 正则表达式匹配括号之间的字符串,regex,bash,Regex,Bash,我有一个正则表达式可以正确地返回: [a1] [b892jklas] [klaj218349] [alllasd] 但我只想匹配并返回: a1 b892jklas klaj218349 alllasd 我正在使用以下命令 cmd | grep -i -o -E '\[[[:alnum:]]\]' 但我不知道如何从结果中排除括号 更新: tr-d'[]”也可以使用(感谢@1_CR的评论) 原职: …|tr-s“[”“”;tr-s“]”“”是最简单的解决方案。您还可以使用sed..grep-P

我有一个正则表达式可以正确地返回:

[a1]
[b892jklas]
[klaj218349]
[alllasd]
但我只想匹配并返回:

a1
b892jklas
klaj218349
alllasd
我正在使用以下命令

cmd | grep -i -o -E '\[[[:alnum:]]\]'
但我不知道如何从结果中排除括号

更新:

tr-d'[]”
也可以使用(感谢@1_CR的评论)

原职:

…|tr-s“[”“”;tr-s“]”“”
是最简单的解决方案。您还可以使用
sed
..

grep-Po'(如果GNU grep是一个选项(也应该针对libpcre.so的最新版本进行编译,
\K
才能工作)

grep -Po '(<=\[)[a-zA-Z0-9]+(?=\])'

为什么不使用“tr-d”[]”呢?重复的。
grep -oP '\[[[:space:]]*\K[[:alnum:]]+(?=[[:space:]]*\])'