REGEX:在之前,之后或之间插入的最佳做法?

时间:2011-10-20 06:08:20

标签: regex insert

我很紧张,因为那里有很多RegEx帖子。但是我也要求最好的方法,所以我要冒险(如果我把工作搞砸了,那就完全期待一个代表...)

我已经获得了重新格式化的列表。 120个问题答案(共240个标签集)。 * glark *我需要做的就是让标签之间的文字成为一个链接,如下所示:

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

必须成为

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

这不是JAVASCRIPT / PHP RegEx问题。 JUST RegEx,我可以进入我的IDE的搜索/替换字段。我可能会尝试使用PERL进行批量替换以插入'n'变量,以便链接正确指向。

我知道你会问'你是否可以使用PERL,为什么不使用整个shebang?'这是一个有效的问题,但我想更多地使用RegEx来获得像这样的大型列表的功能。加上我的PERL技能最好是粗略的...除非你想要解决这个问题......:嘿嘿嘿。

如果论坛的这一部分无法回答或出错,请接受我的道歉并指出正确的方向。

非常感谢!

WR!

2 个答案:

答案 0 :(得分:3)

搜索

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

替换

<li><a href="#n">$1</a></li>

答案 1 :(得分:3)

您可以分两步完成。

  1. <li>
  2. 替换<li><a href="#n">
  3. </li>
  4. 替换</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>