プロが教える店舗&オフィスのセキュリティ対策術

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 ']

A 回答 (1件)

'(?: set|^set).*?(\S+) *='


でどうでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/05/20 00:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!