所以我试图在 grep 中编写一个正则表达式来匹配方括号,即[ad]应该匹配[和]。但是我在使用捕获组和字符类时得到了不同的结果。放在'正则表达式字符串的开头和结尾的结果也不同。
所以这些是我得到的不同结果。
使用捕获组工作正常
echo "[ad]" | grep -E '(\[|\])'
[ad]
Run Code Online (Sandbox Code Playgroud)
使用捕获组而不'给出语法错误
echo "[ad]" | grep -E (\[|\])
bash: syntax error near unexpected token `('
Run Code Online (Sandbox Code Playgroud)
使用字符类[后跟]不提供任何输出
echo "[ad]" | grep -E [\[\]]
Run Code Online (Sandbox Code Playgroud)
使用字符类]后跟[正常工作
echo "[ad]" | grep -E [\]\[]
[ad]
Run Code Online (Sandbox Code Playgroud)
使用带有]后跟[和使用的字符类'不起作用
echo "[ad]" | grep -E '[\]\[]'
Run Code Online (Sandbox Code Playgroud)
如果有人能解释它们之间的区别,那就太好了。