我有一个类似于../../sdd1
并试图sdd
从这里匹配的字符串。我正在尝试使用以下sed
命令:
echo "../../sdd1" | sed 's:.*\([a-z]\{3\}\)[0-9]?:\1:'
Run Code Online (Sandbox Code Playgroud)
它不会产生匹配。
但是当我使用
echo "../../sdd1" | sed 's:.*\([a-z]\{3\}\)[0-9]\{0,1\}:\1:'
Run Code Online (Sandbox Code Playgroud)
然后我得到了我的比赛,sdd
。
我最好的猜测是我也应该转义?
,类似于大括号 - 我试过它并且它有效,但我不知道为什么。
所以问题是,为什么[0-9]?
正则表达式与1
from不匹配sdd1
,或者为什么我们必须转义 the?
和大括号?