Python re でバージョン番号の置換 (正規表現パターン (〜) の中だけ置換)

(コメント)

ファイルが

version_number = "19";

みたいになっていて、正規表現でそのファイルを置換する時

version_number = "(\d+)";

といったように、バージョン番号のみを正規表現パターンとして、それ以外はパターン記号で囲いたくない場合。

ただし、置換後は

version_number = "20";

と、version_number を含んだ文字列で取得したい。

regex = re.compile('version_number = "(\d+)";')

def
_replace(match):
startindex = match.regs[1][0] - match.regs[0][0]
end_index = match.regs[0][1] - match.regs[1][1]
return match.group(0)[:startindex] + str(value) + match.group(0)[-end_index:]
return regex.sub(_replace, self.get_source_code())

このように、_replace のコールバックの、match.regs にマッチ箇所のインデックスが入っているので、それで文字列をスライスすればうまくいくかも

現在未評価

コメント

最近のツイート

  • ytyng

    ytyng @ytyng

    俺もスタバアプリにログインできないよ
    1 ヶ月, 1 週間 前

  • 安藤拓郎 Takuro Ando

    安藤拓郎 Takuro Ando @takuroando

    ytyng

    これまでいろんなグッズを作ってきたけど、今回は「お米」と聞いて買うしかないなと。今夜の夕食はコシヒカリ!箸もセットだし^^ https://t.co/01ucQx9qtw #腰乃展 #マンガ展 https://t.co/4VL2vOe0Og
    1 ヶ月, 3 週間 前

  • ytyng

    ytyng @ytyng

    講談社さんとやった全部入り電子書籍セットがギネスブックに登録されたよー https://t.co/rbkd3IYub0
    1 ヶ月, 3 週間 前