2016-10-26 10 views
-1

正規表現(re.compileとmatch)を使用して、Pythonのkey = valueのペア(String)から値を抽出したいと考えています。私はPythonが初めてです。私は以下しようとしたが、それは正確にキーの値を抽出するためのPython正規表現

license_regex = re.compile('.*LICENSE=.*?.*') 
    match = license_regex.match(line) 

=>全体を印刷しますが動作していないLICENSEの値はすなわちabcd-efgh-1234-34ki

たい [INFO] LICENSE=abcd-efgh-1234-34ki :すべてのヘルプは...

例文字列を高く評価しますライン。 はその後、私は何に

おかげ

+1

こんにちは、ウェルstackoverflowに来て!これまでに試したことだけでなく、何らかのエラーを出すことができますか? – sytech

+1

https://regex101.com/に行き、Pythonモードに切り替え、サンプルテキストを挿入して正規表現で作業してください。インターネット上には、正規表現がPythonでどのように使われるかという例がたくさんあります。いくつかをお試しください。あなたが特定の質問をしているなら、あなたはそれを歓迎します。それが立っているように、これは特定の質問ではなく、コーディングの割り当てです。 – Tomalak

+0

ここに正規表現を使用する必要はありません。 '='で分割するだけで十分です。 –

答えて

3

ドを印刷しない(.*?)!.*' =>で試してみました:

^.*?\bLICENSE=(.*) 

が、その後キャプチャグループは、所望の部分を持っています。

  • ^.*?を遅延LICENSE=

  • (.*)続く空のストリング点で最大一致残りと一致し、そして捕捉グループに入れ1

例:

In [2]: s = '[INFO] LICENSE=abcd-efgh-1234-34ki' 

In [3]: re.search(r'^.*?\bLICENSE=(.*)', s).group(1) 
Out[3]: 'abcd-efgh-1234-34ki' 
+1

もしうまくいけば、[単純な「分割」を使用しないでください(http://ideone.com/OKVA1J)? 's.split( 'LICENSE =')[1]'または 's.split( '=')[1]'はもっと効率的です。 –

関連する問題