标签的位置需要在标签之前。我需要排序500个实例。
例如:
<h2 class="chapter-title"><a href="contents.html#Endnotes"><a id="Anchor"/>Endnotes and References</a></h2>
我正在寻找
(<a [^>]*href\s*=\s*")([^"]+)("[^>]*>)(<a [^>]*id\s*=\s*")([^"]+)("[^>]*>)
正确地拿起两个标签,但我正在努力找到正确的替换来纠正位置。
帮助!! ???
答案 0 :(得分:2)
这对我有用:
$ sed 's#\(<a href[^>]*>\)\(<a id[^>]*>\)#\2\1#g' b
<h2 class="chapter-title"><a id="Anchor"/><a href="contents.html#Endnotes">Endnotes and References</a></h2>
我们查找文本<a href[^>]
并将其保存在第一个var中。然后我们查找文本<a id[^>]
并保存在第二个var中。最后我们交换它们。
请注意,<a id[^>]
表示“从<a id
开始到>
个字符的所有内容。
答案 1 :(得分:0)
我这应该工作。您只需要两个捕获组,一个用于<a href...>
,另一个用于<a id...>
。
sed 's#\(<a [^>]*href\s*=\s*"[^"]+"[^>]*>\)\(<a [^>]*id\s*=\s*"[^"]+"[^>]*>\)#\2\1#'
答案 2 :(得分:0)
你可以尝试这个,我认为这应该有用
<a id="Anchor" href="contents.html#Endnotes">EndNotes and Refrences</a>