こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Python 正規表現でsetと=の間の空白で区切られた文字で、一番右端の文字を取得したい

Pythonで、正規表現を使って、
「set 」(半角空白あり、行の先頭とは限らない)と「=」で挟まれている文字で、=側に一番近い文字を取得したいと考えています。
1行に、「set ○○=」が複数ある場合もあります。
以下の例だと、"gg" と "kkkk" を取得したいのですが、
setと=の間の['fffff gg', 'h ii jjj kkkk ']が返ってきてしまい、一番右端の文字が返ってきてくれません。
setと=の間の文字は、半角の空白で区切られていて、いくつあるかは決まっていません。
どのように正規表現を書けばいいでしょうか?
よろしくお願いします。
-----------------------------------------------------------
line = "set fffff gg=FGFGFGFGFGFG set h ii jjj kkkk = HIIJJJKKKKset lll=LLL"
import re
p = re.compile(r'(?: set|^set) ([^=].*?)=', re.IGNORECASE)
print p.findall(line)
>>>
['fffff gg', 'h ii jjj kkkk ']

投稿日時 - 2009-05-19 23:14:41

QNo.4973466

暇なときに回答ください

質問者が選んだベストアンサー

'(?: set|^set).*?(\S+) *='
でどうでしょうか。

投稿日時 - 2009-05-19 23:29:09

お礼

notnotさん、返答ありがとうございます。
その正規表現で、上手く行きました。

投稿日時 - 2009-05-20 00:04:37

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問