1

文字列内の一致したすべての文字 (この場合は f、z、x、r、および s) をその末尾に移動したいと考えています。

例えば:

chafo -> chaof

sasc -> sacs

chafof -> chaoff

代わりの正規表現を試しました:

Pattern: "/(.+)([f|z|x|r|s])+(.*)/"

Replacement: "$1$3$2"

しかし、それはただ作るだけです: chafo -> chaof、そしてそうではありませんchafof -> chaoff

誰でも私を助けることができますか?

アップデート:

もう1つ、変更する方法はありますか:truwowfng -> truwowngf

rつまり、2 番目の文字の後または 2 番目の文字の場合tは移動されません。

再度、感謝します!

4

2 に答える 2

3

おそらく、 のような単純な量指定子が必要になる/(.+?)([fzxrs]+)(.*)/か、移動したくない文字を指定する必要があります: /(.[^fzxrs]*)([fzxrs]+)(.*)/

これにより、必要な文字の最初の出現 (最初の位置にある場合を除く) が最後に移動します。あなたのコードは最後のものを最後に移動します。これがchafofが失敗する理由です。最後のfを最後に移動します。

于 2013-09-15T06:11:00.490 に答える