1

私はいくつかの文字列操作を行っていますが、正規表現が非常に苦手です。次のような文字列があります。

/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」のみを取得したい

4

2 に答える 2

1

あなたは検索することができます

[^/]*$

これにより、文字列の末尾に隣接するすべての非スラッシュ文字が得られます。

于 2013-01-15T07:43:55.110 に答える
0

-after-同等のものを使用できますfn_substring-beforehttp://www.xqueryfunctions.com/xq/functx_substring-after-last.html

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

正規表現は必要ありません:)

于 2013-01-15T08:18:35.843 に答える