2017-07-30 51 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「)