2017-07-30 53 views
-1

我有一个xlsx/csv文件,我试图用notepad ++修改它的内容。 href里面的一个url。例如:正则表达式 - 在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"" 

现在,我有找到这个模式:

(?<=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>" 

回答

0

你可以尝试以下方法查找和正则表达式模式替换:

查找:

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

替换:

href=""/docs/$1 

请注意查找如果模式不适用于更多数据,则模式可能会变得更通用。但总的来说,我们需要一些具体的方式来确定您希望在比赛中保留的后缀的开始。如果我的答案不适用于您,请指出失败的位置并提供允许识别后缀的逻辑。

+0

这个'^'应该在替换中吗? – Mateus

+0

@MateusA不,它不是,谢谢你指出这一点。 –

0

这里有一个办法只有搭配要与路径替换/部分文档

查找内容:

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

替换:

/docs 

搜索模式:正则表达式(最好用“。match” es new lines“)