2

正規表現を使用して、一致したパターンをREPEATEDパターンに置き換えることはできますか?

例:ターゲット文字列は「abc2:4def」です。abc2222defこれは、「4」がターゲット文字列のリピーターであり、文字列を「非圧縮」形式に戻したいことを意味します。

のバックリファレンスを考えることができますsed

sed 's/\([0-9]+\):\([0-9]\)/\1\\{\2\\}/' #\1 to match "2" and \2 to match "4".

\\{n\\}n回繰り返すことですが、残念ながらそれは機能しません。

でサポートできるのではないかと思いますREGEX。何かアドバイスはありますか?

他のツールでも実現できることはわかっていますが、手元では一部のREGEX機能しか使用できませんでした。

これはstackoverflowでの私の最初の投稿です。何か見落としがあった場合は、お知らせください。

4

1 に答える 1

0

Perl、私はトリックを行うことができます:

$ echo abc2:4def | perl -lne 'print $1 . $2 x $3 . $4 if m/^(\w+)(\d):(\d)(.*)/;'
abc2222def
于 2012-10-18T01:47:27.567 に答える