2
如果我有一個包含這個地方的字符串(美孚可能是任何東西):Linux的SED正則表達式替換,但保留通配符
<tag>Foo</tag>
我將如何使用SED和正則表達式,這種替換:
[tag]Foo[/tag]
我的失敗嘗試:
echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]"
如果我有一個包含這個地方的字符串(美孚可能是任何東西):Linux的SED正則表達式替換,但保留通配符
<tag>Foo</tag>
我將如何使用SED和正則表達式,這種替換:
[tag]Foo[/tag]
我的失敗嘗試:
echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]"
你的正則表達式中缺少終止/
$ echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]/"
[tag]Foo[/tag]
有了這個,您可以替換所有類型的標籤,而不必是標籤特定的。
$echo "<tag>Foo</tag>" | sed "s/[^<]*<\([^>]*\)>\([^<]*\)<\([^>]*\)>/[\1]\2[\3]/"
希望這有助於。
首先通過使用替代字符來劃分s/s/r /來簡化你的正則表達式,比如's @ .... @ ..... @'。一些sed需要警告你使用一個備用(只是第一個字符),所以是\ @ ... @ ... @'。祝你好運。 – shellter