「shared/errors」という文字列があり、「error」という単語の先頭にアンダースコアを追加して、「shared/_errors」を実現したいのですが、これを行うためのルビーの魔法はありますか?
質問する
66 次
4 に答える
2
文字列にスラッシュが 1 つしかないと仮定すると、必要なのは次のとおりです。
string.sub!(%r|(?<=/)|, '_')
または、必要に応じて、
string.sub!('/', '/_')
文字列に複数のスラッシュがあり、最後のスラッシュのみに影響を与えたい場合は、
string.sub!(%r|(?=[^/]*\z)|, '_')
于 2013-07-09T22:45:11.877 に答える
1
スラッシュの最後の出現でのみこれを行いたい場合は、スラッシュのインデックスにアンダースコアを挿入できます。
string.insert(string.rindex('/') + 1, '_')
于 2013-07-09T22:40:20.830 に答える
0
なぜだめですか
path = 'shared/errors' # or whatever it is
dir, file = path.match(/^(.*\/)([^/]*)$/).captures
path = dir + "_" + file
これにより、文字列の 2 つの部分が取得されます。
shared/errors ==> shared/ + errors
そして、それらをつなぎ合わせて、目的のストリングを形成します。
于 2013-07-09T22:35:25.360 に答える