我在Sublime Text中一直在做很多寻找和替换,并决定我需要学习RegEx。到现在为止还挺好。我无论如何都不是专家,但我很快就学会了。
问题在于知道如何替换开放式HTML匹配。
例如,我想查找没有<button>
属性的所有role
。
经过一些黑客攻击和搜索后,我想出了以下模式(see in action):
<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">
答案 0 :(得分:1)
您可以在结束>
之前捕捉所有内容,并在插入role=button
之前将其放回去:
<(button(?![^>]+role).*?)>
这会捕获标记中的所有内容。
替换为:
<$1 role="button">
$1
包含第一个正则表达式捕获的内容。
请参阅updated regexr。