从字符串中删除短划线?

时间:2016-01-03 11:02:01

标签: regex xpath

对于网页抓取,我需要匹配网址的最后一部分,并将“ - ”破折号替换为“”空格。

代码看起来像这样......

<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的应用程序中,没有特定的语言风格。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

尝试使用此xpath而不使用正则表达式:

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

另外,你也可以试试这些方法:

我使用xpath和regex一直在google-sheets中抓取网址 - 所以如果你想尝试:

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

现在,如果你至少得到了url字符串,那么你知道它正在工作的广告,然后我们可以将其修改为此以获得你想要的东西:

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

如果你有问题,请告诉我 - 谷歌有一些奇怪的怪癖 - 但如果你分享你的拉动xpath的网址我至少可以自己测试 - 我现在使用这种方法比任何其他方法更多,我曾经使用import.io和outwit hub等一吨