1

Pythonと正規表現を同時に学習しようとしていますが、文字列の最後まで一致させてその場で置換する方法を見つけるのに苦労しています。

だから、私は次のような文字列を持っています:

ss="this_is_my_awesome_string/mysuperid=687y98jhAlsji"

私が望むのは、最初に見つけて687y98jhAlsji(このコンテンツを事前に知りません)、それを次myreplacedstuffのように置き換えることです:

ss="this_is_my_awesome_string/mysuperid=myreplacedstuff"

理想的には、最初に(文字列の最後まで)regex and replace内容を検索してから実行し、それが理にかなっていればorを実行したいと考えています。mysuperid=.replace.sub

これに関するガイダンスをいただければ幸いです。

4

2 に答える 2

6

これを試すことができます:

 re.sub(r'[^=]+$', 'myreplacedstuff', ss)

アイデアは、区切り文字 (ここでは ) を除外する文字クラスを使用し=、パターンを固定することです$

説明:

[^=]は文字クラス であり、文字列のこのクラスの末尾にある1 つ以上の文字ではないすべての文字を意味します=
[^=]+
$

正規表現エンジンは左から右に動作するため=、文字列の末尾にない文字のみが一致します。

于 2013-06-10T00:15:15.750 に答える
1

正規表現を使用できます。

>>> import re
>>> mymatch = re.search(r'mysuperid=(.*)', ss)
>>> ss.replace(mymatch.group(1), 'replacing_stuff')
'this_is_my_awesome_string/mysuperid=replacing_stuff'

ただし、おそらく@Casimirの回答を使用する必要があります。それはきれいに見えます、そして私は正規表現が得意ではありません:p。

于 2013-06-10T00:17:03.390 に答える