正则表达式中的编号项目

Posted

技术标签:

【中文标题】正则表达式中的编号项目【英文标题】:numbering items in regex 【发布时间】:2017-01-27 03:10:52 【问题描述】:

我在谷歌搜索了这样的解决方案,但我找不到,我想在每个匹配的项目旁边生成数字,例如在 emmet 中: 如果我在支持 emmet 的 IDE 中写了以下内容:

ul>li.item$*5

它将生成:

<ul>
    <li class="item1"></li>
    <li class="item2"></li>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
</ul>

有没有办法在 Regex 中完成同样的事情?

感谢您的建议,

【问题讨论】:

正则表达式只是字符串的搜索模式。它不会“产生”任何东西。 我想把行首换成数字 哪一行的开头?您使用什么语言来生成 html,或者您希望在哪里编写正则表达式? phpjavascript?发布更多代码。 我有一个在html中生成数字的例子,但我说的是在php字符串中生成数字 如果你用的是php,也许把问题和标签改成php。因为这肯定可以通过 php 代码完成。但正则表达式通常不会有可用于替换字符串的计数器变量。在这种情况下,通常是使用正则表达式的编程语言进行计数,或者它使用从正则表达式匹配返回的数组。 【参考方案1】:

要使用 PHP 生成列表,您可以使用简单的循环,不需要正则表达式。

<ul>
    <?php for ($i = 0; $i < 5; $i++) : ?>

    <li class="item<?= $i; ?>"></li>

    <?php endfor; ?>
</ul>

【讨论】:

以上是关于正则表达式中的编号项目的主要内容,如果未能解决你的问题,请参考以下文章

正则 : 分组与引用

awk将同一行中的两个元素与正则表达式进行比较

营业执照编号 正则表达式

嵌套捕获组如何在正则表达式中编号?

PHP 正则表达式 - 仅过滤器编号

匹配地址的正则表达式:匹配具有不同结构的地址的问题