2016-01-03 209 views
1

對於網頁抓取,我需要匹配網址的最後部分並用「」空格替換「 - 」破折號。從字符串中刪除破折號?

代碼看起來像這樣...

<div class="tags"> 
    <span class="tag" style="background-color: #5A214A;"> 
     <a href="/Services/Research/Telecoms-software/Service-Assurance/">SA</a> 
    </span> 
</div> 

我想只剩下「服務保證」(這部分可以包含多個「 - 」破折號和需要多次更換)。

目前正在使用:

的Xpath:

//span[@class="tag"]/a/@href 

正則表達式:

/.*/(.*)/ 

這產生 「服務保證」,但不去除出 「 - 」。

我在其他地方告訴我,這替代,因爲我已經在使用正則表達式來找到最後的「/」斜槓之間的字符串是不可能的。

我可以同時做嗎?我最後可以替換「 - 」破折號嗎?

正則表達式很簡單,在名爲import.io的應用程序中,沒有特定的語言風格。

非常感謝。

+2

「沒有特別的語言味」 - 我認爲這種說法是有問題的:一方面,未必存在這樣的事,作爲「純正則表達式沒有特定的味道「。另一方面,它阻止我們評估是否通過RegEx執行此操作,而不是通過您的上下文中可用的其他方式執行此操作是否是一個好主意。 –

+1

明顯的答案是「使用兩個正則表達式」(或確實使用正則表達式的替代方法)。想必有些事情使你無法做到這一點,或者你不會問這個問題,但是你沒有具體說明什麼使你的問題變得不可能。 – hvd

+0

@Robert你可以用「」替換「 - 」嗎?只需一個簡單的替換,而不使用任何正則表達式? –

回答

0

試試這個XPath沒有正則表達式:

//*[@class='tag-wrapper']/input[1]/@value 

althernatively你也可以嘗試以下方法:

我湊的網址在谷歌表所有的XPath和正則表達式的時間 - 所以,如果你想嘗試:

=importXML("url goes here","//span[@class="tag"]/a/@href") 

現在那麼如果你這樣做至少可以得到URL字符串後面,那麼你知道它的工作的廣告我們就可以將它修改爲這得到你想要的東西:

=SUBSTITUTE(REGEXEXTRACT(importXML("url goes here","//span[@class="tag"]/a/@href"),".*\/(.*)\/$"),"-"," ") 

讓我知道,如果你有問題 - 有一對夫婦與谷歌奇怪的怪癖 - 但如果你共享你拉了XPath與URL我至少可以測試它自己 - 我現在用這個方法比別人多,我用import.io和智勝樞紐等一噸

+0

如果可能的話,我寧願在抽取階段執行操作,儘管這個Sheets替換函數可能有助於瞭解我最終將在Sheets中存儲內容。 –

+0

@RobertAndrews Import.io還允許您將它作爲api使用,您可以直接將結果導入到工作表中,並且我相信也可以與您的工作表直接集成。 –

+0

@RobertAndrews試試這個xpath,而不使用正則表達式:// * [@ class ='tag-wrapper']/input [1]/@value - 我剛剛測試過,這應該抓住你想要的東西。 - 不要忘記將提取值更改爲文本而不是鏈接。 –