正则表达式在最后一次正斜杠之前替换所有内容

时间:2013-01-15 07:41:40

标签: regex string

我正在做一些字符串操作,而且我在正则表达式上非常糟糕。我有一些字符串:

/sonata-economy-analog-watch-men/p/itmda5wagvmtttwr

我想用空格替换最后一个正斜杠之前的所有内容,只得到“itmda5wagvmtttwr”。有谁知道如何用正则表达式做到这一点?

更新 - 其实我是用xml做的。

        let $url :=data($item//a[@class="fk-anchor-link"]/@href)
        let $temp :=fn:substring-before($url, "?")
    let $temp2 :=fn:replace()

在url中我会得到字符串

/titan-htse-analog-watch-men/p/itmd9gjfprgdt8d8?pid=WATD9H76AMCWDYT5&ref=28b766fc-2692-4ba3-a4cb-ea8a060cc9ec

使用fn:substring-before($ url,“?”)我之前已经采取了一切措施?而且我正在接受,

/titan-htse-analog-watch-men/p/itmd9gjfprgdt8d8

现在我要在最后一个“/”之前替换所有内容,并在temp2中只获取“itmd9gjfprgdt8d8”

2 个答案:

答案 0 :(得分:1)

您可以搜索

[^/]*$

,它为您提供与字符串末尾相邻的所有非斜杠字符。

答案 1 :(得分:0)

您可以使用-after - 相当于fn_substring-beforehttp://www.xqueryfunctions.com/xq/functx_substring-after-last.html

let $temp :=fn:substring-after-last(fn:substring-before($url, "?"), "/")

不需要正则表达式:)