0

我一直在 Sublime Text 中进行大量查找和替换,并决定我需要学习 RegEx。到现在为止还挺好。我无论如何都不是专家,但我学得很快。

问题在于知道如何替换开放式 HTML 匹配项。

例如,我想找到所有<button>没有role属性的 s。经过一些黑客和搜索,我想出了以下模式(见实际操作):

<button(?![^>]+role).*?>(.*?)

伟大的!除了,在我正在使用的代码库中,有大量的结果。
如何通过role=button在结束时注入来安全地替换结果,就在开始标签 <button的结束之前?>

预期结果
之前:<button type="button">
之后:<button type="button" role="button">

之前:<button class="btn-lg" type="button">
之后:<button class="btn-lg" type="button" role="button">

4

1 回答 1

1

您可以在结尾之前捕获所有内容>并将其放回,然后插入role=button

<(button(?![^>]+role).*?)>

这将捕获标签中的所有内容。

替换为:

<$1 role="button">

包含第$1一个正则表达式捕获的内容。

请参阅更新的正则表达式

于 2013-08-24T05:45:01.623 回答