将所有 HTML 列表项转换为可点击的超链接

问题描述 投票:0回答:2

我收到了一个需要重新格式化的 HTML 列表。 120 个问题 答案(总共 240 个标签集)。 * glark * 我需要做的就是使标签之间的文本成为链接,如下所示:

<li>do snails make your feet itch?</li>

必须成为

<li><a href="#n">do snails make your feet itch?</a></li>

我正在我的 IDE 中执行此替换。

最终我可能会尝试使用 PERL 进行批量替换以插入

'n'
变量,以便链接正确指向。

您可能会问:“如果您可以使用 PERL 来实现这一点,为什么不使用整个 shebang?” ...这是一个有效的问题,但我想更多地使用正则表达式,因为它对于像这样的大列表具有强大的功能。 另外,我的 PERL 技能充其量也只是粗略(如果有 PERL 建议的话,我很欢迎)。

regex perl hyperlink ide listitem
2个回答
3
投票

您可以分两步完成。

  1. <li>
     替换 
    <li><a href="#n">
  2. </li>
     替换 
    </a></li>

或者你可以尝试变得聪明,将其合二为一。 这是 Perl 语法中的替代命令($1 引用括号中匹配的内容)。

s,<li>(.*)</li>,<li><a href="#n">$1</a></li>,

当您在那里时,可以轻松地将替换模式的第二部分替换为将递增的表达式

n

s,<li>(.*)</li>,q{<li><a href="#} .++$n . qq{">$1</a></li>},e

了解如何从命令行运行它:

echo '<li>do snails make your feet itch?</li>' | 
perl -pe 's,<li>(.*)</li>,q{<li><a href="#} .++$n . qq{">$1</a></li>},e'

<li><a href="#1">do snails make your feet itch?</a></li>

3
投票

搜索

<li>(.*?)</li>

更换

<li><a href="#n">$1</a></li>
© www.soinside.com 2019 - 2024. All rights reserved.