如果我有一个包含这个字符串的字符串(Foo可以是任何东西):
<tag>Foo</tag>
我如何使用SED和RegEx将其替换为:
[tag]Foo[/tag]
我失败的尝试:
echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]"
答案 0 :(得分:4)
您的正则表达式缺少终止/
$ echo "<tag>Foo</tag>" | sed "s/<tag>\(.*\)<\\/tag>/[tag]\1[\\/tag]/"
[tag]Foo[/tag]
答案 1 :(得分:2)
通过这种方式,您可以替换所有类型的标签,而不必是特定于标签。
$echo "<tag>Foo</tag>" | sed "s/[^<]*<\([^>]*\)>\([^<]*\)<\([^>]*\)>/[\1]\2[\3]/"
希望这会有所帮助。