2016-03-30 9 views
2

文字列の '='と '&'の間の文字列のrsession変数を取得しようとしています。Regex - 2文字間の文字を取得しますが、それらは含まれません

/rsession(\=.+?\&)/で対応できます。

しかし、出力に '='と '&'が含まれないようにするにはどうすればよいですか?

文字列は次のとおりです。 "app=1334300&rsession=0806343413_1:5bc6a3c80271826a1c0016c1520d3&token=a6caacf7edfbd9383429e30a1adfadf385208985ad&redirectReq=true"

答えて

1

あなたは、この正規表現を使用することができます。

+0

素晴らしいです、ありがとうございます! –

+0

私があなたを訂正する可能性がある場合。 '*'は '0'または' 1'を表します。セッションIDは間違いなく「1」以上になるため、ここでは違いはありません。 –

+1

@AndyPotter。それを聞いてうれしい;)...この答えがあなたのために働いたなら、あなたは[緑色のマーク](http://meta.stackexchange.com/a/5235/318874)をチェックすることでそれを受け入れることができます。 –

0

あなたはこのようにグループでそれをキャプチャすることができます。

正規表現:/rsession=([^&]+)/

説明:&が満たされるまで

  • ([^&]+)は、グループ内のすべての文字をキャプチャします。キャプチャされたグループを使用するには、\1または$1を使用します。

    /(?<=rsession=)[^&]*/ 
    

    説明:

    (?<=    # asserts the match at position after 
        rsession=  # the literal string `rsession=` 
    )     # it is called: positive lookbehind 
    [^&]    # not `&` character 
    *     # as many as possible 
    

    はそれが役に立てば幸い

Regex101 Demo

+0

これにはまだ "rsession ="が含まれています。 –

+0

@AndyPotter:あなたの正規表現で 'rsession'を述べたので、私はあなたもそれをキャプチャしたいと思っていました。"/rsession(\ =。+?\&)/ "' **キャプチャされたグループ**を引き続き使用できます。それにはまだ**セッションID **しかありません。 –

関連する問題