Regex-xpath-如何从字符串中提取子字符串?

时间:2018-02-12 14:31:40

标签: regex xpath soapui

我的soapui测试套件中有以下xpath匹配,

//html/body/div[2]/table/tbody/tr[td/b[text()='NewsV1']]//td[4]/a[1]/@href[1]

结果:

http://shortness.com:101115/localnewsv1/info

我希望得到如下预期结果(它应该从http到第三个结果取得结果)

http://shortness.com:101115/

我已尝试将以下xpath与正则表达式结合使用

tokenize(/html/body/div[2]/table/tbody/tr[td/b[text()='NewsV1']]//td[4]/a[1]/@href[1], ' ' )[matches(., 'http://+w[a-zA-Z0-9.]+d{*}+/')

这会在结果中给出一个无效的表达。如果您有想法指出问题或建议。

Screenshot for the issue

2 个答案:

答案 0 :(得分:1)

对于此标记,

<a href="http://shortness.com:101115/localnewsv1/info"/>

此XPath 2.0表达式(确保您的库支持XPath 2.0),

concat(join(tokenize(/a/@href, '/' )[position() < 4],'/'),'/')

将返回

http://shortness.com:101115/

按要求。

答案 1 :(得分:0)

我想d{*}可能在某些正则表达式方言中有意义,但它在XPath 2.0正则表达式方言中没有意义(并且无效)。