我正在努力帮助某人清理一堆锚标签。最初相对路径使用了一堆子目录,现在他们已将所有文件移动到一个目录中,但现在需要通过从中删除对子目录的所有引用来清理链接。有数千个文件需要修改,我正在尝试编写一个可靠的正则表达式来清理它们。
以下是我遇到的行类型的示例,并且无法编写适用于所有类型的内容。
开始:
<a href="Choosefile.html">Choosing a File Type</a>
<a href="Deletefiles.html">Deleting a File</a><br /><a href="Exporting_a_File/Exportwindow.html">
<a href="Importing_a_File/Importwindow.html">
<a href="Searching/Searching_for_a_File/Searchpanel.html">
目标:
<a href="Choosefile.html">Choosing a File Type</a>
<a href="Deletefiles.html">Deleting a File</a><br /><a href="Exportwindow.html">
<a href="Importwindow.html">
<a href="Searchpanel.html">
目前我有以下表达式,但当同一行上有多个锚标记时,它不起作用。
(?<=href\=([\"'])).*(?<=[a-z])(?:\\|\/)(?=[a-z])
答案 0 :(得分:0)
如果您的数据一致,您可以使用
\shref=(["'])\K(?:(?!\1).)*/
请参阅regex demo(注意/
可能需要转义,这取决于您使用正则表达式的位置。)
\s
- 匹配空白href=
- href=
子字符串(["'])
- '
或"
报价(第1组)\K
- 省略目前为止匹配的文字(?:(?!\1).)*
- 除'
或"
以外的任何零个或多个字符(该值取决于捕获到第1组中的内容)/
- /
字符。