我要做的是用#
元素替换所有空'href'或其值为button
的锚元素。在进程中如果他们有一个类我想要向它添加额外的类btn btn-link
并保留所有其他属性。我试图在Nodepad ++中这样做。
这是我的正则表达式<a (?=.*?href="#")(?:.*?class="(.*?)")?(.*?)>(.*)</a>
<a href="#" data-ng-click="openDeleteDialog(futureTask,$event)" title="@ResourceDictionary.CommonDeleteLabel"><i class="fa fa-trash-o fa-lg"></i></a>
<a href="#" class="delete" data-ng-click="delete(futureTask,$event)"><i class="fa fa-calendar"></i></a>
转换为:
<button class="btn btn-link" data-ng-click="openDeleteDialog(futureTask,$event)" title="@ResourceDictionary.CommonDeleteLabel"><i class="fa fa-trash-o fa-lg"></i></button>
<button class="btn btn-link delete" data-ng-click="delete(futureTask,$event)"><i class="fa fa-calendar"></i></button>
答案 0 :(得分:1)
我建议用3个正则表达式替换它。
使用 href="#"
将 A 元素转换为 BUTTON 元素:
搜索字符串:<a\s+([^>]*?)href="#"([\s\S]+?)</a>
替换字符串:<button class="btn btn-link" \1\2</button>
在 class="btn btn-link"
之后清理空白:
搜索字符串:(class="btn btn-link")[\t ]{2,}
替换字符串:\1\x20
在 BUTTON 标记内加入课程:
搜索字符串:(<button class="btn btn-link)"([^>]+?)class="(.+?)"\s*
替换字符串:\1 \3"\2
当然可以在第二个替换字符串中使用空格字符而不是\x20
。
这些3个正则表达式替换在几个示例行中进行了测试,其中href="#"
位于 A 标记的任何位置, A 标记和字符串值中也包含新行使用UltraEdit v21.20。 Notepad ++应该替换与UltraEdit相同的内容。