1

私は Python Regex (一般的な正規表現) にかなり慣れていないため、問題に遭遇しています。だから、私は次のようないくつかの文字列を持っています:

str1 = r'''hfo/gfbi/mytag=a_17014b_82c'''
str2 = r'''/bkyhi/oiukj/game/?mytag=a_17014b_82c&'''
str3 = r'''lkjsd/image/game/mytag=a_17014b_82c$'''

the&と the$は任意の記号です。

以下を置き換える単一の正規表現(および置換)が必要です。

mytag=a_17014b_82c

に:

mytag=myvalue

上記の 3 つの文字列のいずれかから。これを達成する方法についてのガイダンスをいただければ幸いです。

更新: 置換される文字列は常に同じではありません。したがって、a_17014b_82c実際には何でもかまいません。

4

3 に答える 3

1

使用re.sub:

>>> import re
>>> r = re.compile(r'(mytag=)(\w+)')
>>> r.sub(r'\1myvalue', str1)
'hfo/gfbi/mytag=myvalue'
>>> r.sub(r'\1myvalue', str2)
'/bkyhi/oiukj/game/?mytag=myvalue&'
>>> r.sub(r'\1myvalue', str3)
'lkjsd/image/game/mytag=myvalue$'
于 2013-08-04T13:48:36.027 に答える
0
import re
r = re.compile(r'(mytag=)\w+$')
r.sub(r'\1myvalue', str1)

これは @Ashwini の回答に基づいていmytag=a_17014bます。

str1 = r'''/bkyhi/mytag=blah/game/?mytag=a_17014b_82c&'''

最初の mytag の代わりに最後の mytag を置き換えれば、問題なく動作します。

もう 1 つの小さな変更点は、不必要に をキャプチャし\w+ないことです。とにかく使用しないためです。これは、コードをわかりやすくするためのものです。

于 2013-08-04T14:04:47.837 に答える