正则表达式 - 在href属性中查找并替换url

时间:2017-07-30 14:40:44

标签: regex csv notepad++ xlsx findandmodify

我有一个xlsx / csv文件,我试图用notepad ++修改它的内容。 正好是href里面的一个url。例如:

href=""/xs_db/DOKUMENT_DB/www/Datenblaetter/de/7/7521_Datasheet--de.pdf""
href=""/xs_db/DOKUMENT_DB/www/Datenblaetter/de/7609_Datasheet--de.pdf""
href=""/xs_db/DOKUMENT_DB/www/Datenblaetter/de/6/7981_Datasheet--de.pdf""
etc...

更换后,我希望它们看起来像这样:

href=""/docs/7521_Datasheet--de.pdf""
href=""/docs/7609_Datasheet--de.pdf""
href=""/docs/7981_Datasheet--de.pdf""

现在,我在find上有这个模式:

(?<=href=(""|''))[^"']+(?=(.pdf""|.pdf''))

编辑: 在尝试给定示例后,没有字符串匹配。这是完整的单元格文本:

"<table cellspacing=""0"" width=""100%"" border=""0"" cellpadding=""10""><tbody><tr>
 <td align=""left"" valign=""top"">
 <table cellspacing=""0"" width=""100%"" border=""0"" cellpadding=""0""><tbody><tr>
 <td>
 <table cellspacing=""0"" width=""100%"" border=""0"" cellpadding=""0""><tbody><tr>
 <td align=""left"" valign=""top"" class=""DocRepCell1""><img src=""/catalog/pdf.gif"" alt="" "" border=""0""></td>
 <td align=""left"" width=""97%"" valign=""middle"" class=""DocRepCell2""><span class=""NavigationButtonMoreInfos"">Produktinformation breite</span> </td>
 <td align=""right"" width=""1%"" nowrap=""nowrap"" valign=""middle"" class=""DocRepCell3"">0,1 MB</td>
 <td align=""right"" width=""1%"" nowrap=""nowrap"" valign=""middle"" class=""DocRepCell4"">
  <a class=""NavigationButtonMoreInfos"" target=""_blank"" href=""/xs_db/DOKUMENT_DB/www/Datenblaetter/de/7/7521_Datasheet--de.pdf"">herunterladen</a></td></tr>
  </tbody></table></td></tr></tbody>
  </table></td></tr>
  </tbody></table></td></tr>
  </tbody></table>"

2 个答案:

答案 0 :(得分:0)

您可以在正则表达式模式下尝试以下查找和替换:

<强>查找

^href=""/.*?(\d+_Datasheet.*\.pdf"")$

<强>替换

href=""/docs/$1

请注意,如果查找模式不适用于更多数据,则可以使查找模式更具通用性。但总的来说,我们需要一些具体的方法来识别你希望在比赛中保留的后缀的开头。如果我的回答对您不起作用,请说明失败的原因,并提供允许识别后缀的逻辑。

答案 1 :(得分:0)

这是一种只需将要替换的部分与路径/文档

匹配的方法

查找内容:

^href=["']+\K(/.*?)(?=/\d+_[\w-]+\.pdf["']+$)

替换为:

/docs

搜索模式:正则表达式(最好用“。匹配新行”检查)