2017-11-16 8 views
-1

文字列の後の最初のスペースの後にすべての文字を取得する必要があります。 など。Regex:単語の後にスペースが最初に出現した後のすべてを取得

a=1 session=<value> {'s'='2'} 

値はスペースなしでランダムな長さのものであろうと{'s'='2'}の前にスペースがあるだろう:私は、以下の形式で文字列から{'s':'2'}を取得する必要があります。したがって、{'s'='2'}は常に 'session ='という文字列の後に最初のスペースが続き、sessionの前にa=1のような可変数のキー値のペアが存在します。

など。

From: a=1 b=2 session=sdasdsadsa {'foo':'2'}   # I need to get {'foo':'2'} 
From: a=1 b=2 c=3 session=s2312dssdaa {'bar':'3'} # I need to get {'bar':'3'} 
+2

その文字列の最初のスペースは、 '1'と' session'の間のスペースです。 – user2357112

+1

なぜ2番目のスペースを使いたいのですか? – user2357112

+0

セッションの前に複数のキー値のペアが存在する – srk

答えて

0

シンプルな1つのライナー:

print(string.split(substr)[1][1:]) 

stringは、あなたの文字列で、substrがストリングです。

これにより、文字列がリストに分割され、2番目の値と最後の値が再びスペースで結合されます。

出力:この正規表現は、それはおそらく、それを書くのは良い方法である/^\S*\s+(\S+) /

動作するはず

>>> string = "a=1 session=<value> {'s'='2'}" 
>>> substr = "session=<value>" 
>>> print(string.split(substr)[1][1:]) 
{'s'='2'} 
>>> 
+0

私はsplunkでこれを使用する必要があるので、正規表現で私を助けてくれますか? – srk

+0

文字列の前に1つ以上のキーと値のペアがある場合、これは機能しません。 – freginold

0

。これは非常に多くの操作を行うためです。

+0

表現のさまざまな部分が何をしているのかを説明した場合は、このページに来る将来のサイト訪問者だけでなくOP - にとっても役立ちます。 – freginold

関連する問題