正则表达式用问号替换问题

用户名

我的档案中有以下文字

    <td class="toc-subitem-num"></td>
    <td class="toc-title">Section 170 Text</td>
    <td class="toc-subitem-num"></td>
    <td class="toc-title">
       <span class="font-style-italic">Section 170A Text</span>
    </td>

我想捕获Section <number>零件,并且正在使用以下正则表达式进行捕获

<td class="toc-subitem-num"></td>[\r\s\n]*<td class="toc-title">([\r\s\n]*<span class=\"font-style-italic\">)?Section ([0-9]+)([A-Z]+)?

搜索工作正常,但是在替换中,我希望此数字出现在第一个标签中,我使用的替换如​​下。

<td class="toc-subitem-num">Section $1$2$3</td><td class="toc-title">

我当前的输出:

<td class="toc-subitem-num">Section 170</td><td class="toc-title"> Text</td>
 <td class="toc-subitem-num">Section 
   <span class="font-style-italic">170A</td><td class="toc-title"> Text</span>

预期O / p:

<td class="toc-subitem-num">Section 170</td><td class="toc-title"> Text</td>
     <td class="toc-subitem-num">Section 170A</td>
       <td class="toc-title"><span class="font-style-italic"> Text</span>

请让我知道我该怎么做。

谢谢

克尔克

为了解决此问题,您需要确保捕获组正确无误:

/<td class="toc-subitem-num"><\/td>[\s]*<td class="toc-title">[\s]*(<span class=\"font-style-italic\">)?(Section [\d]+[A-Z]*)? ([\w ]+)(<\/span>\s+)?(<\/td>)/gi

在此处查看实际的功能版本:https://regex101.com/r/fS9lC3/3

现在,捕获组2和3始终会返回您想要的内容。

<td class="toc-subitem-num">$2</td><td class="toc-title">$1$3$4</td>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章