我在sed中使用以下正则表达式,但我想保留一个值。我想保留锚文本值。在这种情况下,它是一个3.现在,下面将输出[]任何有href的锚标记,其中有一个井号。我希望它是[3]而不是[]。这个数字是动态的,所以在这种情况下它是3,但每次都会有所不同。无论如何得到那个数字,然后在正则表达式中回忆起来?
echo '<a href="#anchor3">3</a>' | sed 's:<a href="#.*>[0-9]</a>:[]:g'
答案 0 :(得分:2)
您必须使用捕获括号和反向引用。
捕获括号只是您希望保留的图案部分的括号。然后,您可以使用\1
(对于第一组括号),\2
等来替换它们。
echo '<a href="#anchor3">3</a>' | sed -r 's:<a href="#.*>([0-9])</a>:[\1]:g'
# returns '[3]'