前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
正規表現のreplaceについて行き詰っています。 例えば、「abccbdaba」と合ったとき、2つ目の"b"のみをxに書き換えたいとします。 以下のようなソースコードで実行していますが、できません。 左から回数制限を実施するものは調べると出てきますが、右からはなく試してみましたができませんでした。 ご知見をいただければと思います。
該当のソースコード
text = "abccbdaba" text2 = text.replace(b,x)
試したこと
text2 = text.replace(b,x,-1)
にすると、右からになるかな?と淡い期待を持ちましたが、ダメでした。。
補足情報(FW/ツールのバージョンなど)
皆様、回答いただきありがとうございます。
実際に必要だった条件が、右から数えて一つ目のb(文字列)のみを書き換えたいというものでした。
なので、反転して文字列の前から探す手法をとりました。
text = "abccbdaba" #abcdはそれぞれ文字列
text_r = "".join(list(reversed(text)))
b_r = "".join(list(reversed(b)))
x_r = "".join(list(reversed(x)))
text_rr = text_r.replace(b_r,x_r,1)
text_new = "".join(list(reversed(textrr)))
print(text_new)
計算コストがややかかりすぎている印象で、いただいたご知見を活かさせていただきたいと思います。

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/15 23:38