2016-07-01 4 views
1

私は質問をしていました。 私はこのようなURLを持っています。URLからの部分正規表現の抽出

/Hello/World/special/Case/2016/07/01/offer-015155.html

私は唯一の "2016/07/01/offer-015155" この部分と、これは動的たびに変更する必要があります。手伝ってくれる?

  • 私は"(.*?)" , "\d{4}/\d\d/\d\d/offer-\d+."を試しましたが、役に立たなかった。

私はそれを言うが見つかりません。 :(

+0

あなたは区切り文字をエスケープする必要があります。 'の\ D {4} \/\ D \ D \/\ d \ d \/offer- \ d + ' –

+0

[Regex101.com](https://regex101.com/r/v Y5mS2/1)はあなたの友人です。 :) –

+0

@MariaDeleva:私はちょうどそれを試みた...うまくいきませんでした – user3680022

答えて

0

あなたはURLの一部を抽出したい場合、(.+)

デモのような非常にシンプルなものを使用することは非常に十分でしょう:

RegExp Tester

例正規表現の設定(「Field to Check」ビット)

Regular Expression Extractor

参照:

+0

Dmitiriありがとうございます。あなたはいつものように素晴らしいです。しかし、私はこのようなことがここにあるのを見てください。私は今何かを抽出したので、今のようになります "/2016/01/07/offer-456789.html"。何か方法はありますか、私は.htmlを "削除"できます....私が持っていない部分まで、私は.htmlを使うことができました。ありがとう。 – user3680022

+0

多分正規表現を '/ Hello/World/special/Case/(.+).html'に変更しますか? –

0

あなたはこのように、肯定先読みと組み合わせて正の後読みの使用を検討できます。

(?<=\/Hello\/World\/special\/Case\/).*(?=.html) 

この正規表現は非常に明示的であるが、仕事をしていません正規表現の説明については、これを参照してください。https://regex101.com/r/vY5mS2/2

EDIT: それとも単にキャプチャグループを使用します(https://regex101.com/r/vY5mS2/5

\/Hello\/World\/special\/Case\/(.*)\.html 
0

あなたはFOを試すことができますまたllowingコード:

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

public class Test { 
    public static void main(String[] args) { 
     Pattern pattern = Pattern.compile("(\\d{4}/\\d{2}/\\d{2}/offer-\\d+)"); 
     String testString = "/Hello/World/special/Case/2016/07/01/offer-015155.html"; 
     Matcher matcher = pattern.matcher(testString); 
     if (matcher.find()) { 
      System.out.println(matcher.group()); 
     } 
    } 
} 

実行結果:2016/07/01/offer-015155

+0

ありがとうございました。私はJMeterツールでこれを実装できないと思います。それは正しい? – user3680022

+0

おそらくJMeterで正規表現を使うことができます:\\ d {4}/\\ d {2}/\\ d {2}/offer - \\ d +) – xSAVIKx

関連する問題