私はこのような文字列を持っています:00:11:40または00:02:40どのようにして先頭のゼロとコロンを取り除くことができますか?それはこの 11時40分または2時40文字列の書式設定、先頭の文字の削除
答えて
、彼らが最初にしているので、私たちは、末尾のない、これらの「一流」の文字を呼び出しますが、このための正規表現は非常に簡単です。
x.sub(/^[0:]*/,"")
これはあなたがそれを表現したとおりに機能します:starti文字列の先頭に0を指定して、すべてを削除します。
EDITのように見えるので、:OPは最初からこれを望んでいた:
seconds = 11*60+40
Time.at(seconds.to_i).gmtime.strftime('%M:%S') # gives '11:40'
以上の書式設定オプションのためman strftime
を参照してください。
EDIT:すべてのディスカッションを組み入れ、推奨されるアプローチです。 Timeコールの必要性もなくなります。
seconds = seconds.to_i
if seconds >= 60
"#{seconds/60}:#{seconds%60}"
else
"#{seconds}"
end
ありがとうございますが、私はこれを行う一般的な方法が必要です。文字列を秒単位で変換します。Time.at(秒.to_i).gmtime.strftime( '%R:%S') –
閉じる!私は、いくつかの正規表現で "gsub"を使用して先行ゼロとコロンを取り除く方法を理解する必要があります –
あなたはペテロが言ったようなものを使用することができますが、正確に次のようになります。
s = "00:11:40"
s = s[3..-1] # 11:40
別のアプローチは、splitメソッドを使用することです:私は1つは、より多くのことがわかりますが
s = "00:11:40".split(":")[1,2].join(":")
を混乱し複雑です。
正式なルックバックビハインド正規表現を試してみるとよいでしょう。 ニースreference
it "should look-behind for zeros" do
time = remove_behind_zeroes("ta:da:na")
time.should be_nil
time = remove_behind_zeroes("22:43:20")
time.should == "22:43:20"
time = remove_behind_zeroes("00:12:30")
time.should == "12:30"
time = remove_behind_zeroes("00:11:40")
time.should == "11:40"
time = remove_behind_zeroes("00:02:40")
time.should == "2:40"
time = remove_behind_zeroes("00:00:26")
time.should == "26"
エンド
def remove_behind_zeroes(value)
exp = /(?<=00:00:)\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /(?<=00:0)\d:\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /(?<=00:)\d\d:\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /\d\d:\d\d:\d\d/
match = exp.match(value)
if match then return match[0] end
nil
エンド
これを行うには4つの異なる正規表現と15行のコードは必要ありません!単一の.sub(/^[0:] * /、 "")はうまくいきます! –
たとえば、ルビーの場合、「05」のような文字列があり、それを5にしたければ、単に「05」を実行するだけで、基本的な変換テクニックに単純に頼ることができます。
- 1. R:文字列の先頭から先頭のゼロを削除する
- 2. 文字列の先頭の空白を削除します。
- 3. C#の接頭辞文字列の複数行の書式設定(接頭辞@)
- 4. Pythonの文字列書式設定エラー
- 5. 文字列ブロックの書式設定チャレンジ
- 6. 文字列の書式設定+ Blackberry + java
- 7. 文字列 - 金額の書式設定
- 8. 文字列書式設定のPython
- 9. 数字の文字列の先頭にゼロを削除するVBA
- 10. 日付書式設定文字列
- 11. 文字列の先頭からPHP配列の暗黙文字を削除するには
- 12. 変数の書式設定によるPythonの書式設定文字列
- 13. グループの先頭文字
- 14. 行の先頭から2文字を削除するには
- 15. Pythonの大文字書式設定
- 16. 文字列内の先頭と末尾の括弧を削除します。
- 17. Crystal Reports/FormatEditor/Display文字列式:データの書式設定方法
- 18. CultureInfoの書式文字列
- 19. 文字列内の特定の文字を削除する
- 20. ANT:文字列から先頭と末尾の空白を削除する
- 21. PHPで文字列の先頭と末尾からタグを削除します
- 22. 長い(チャット)になると文字列の先頭から削除
- 23. javascriptで文字列(数字)を書式設定する方法
- 24. Sprintfでポインタ、定数、文字列の書式設定
- 25. 削除文字列
- 26. 文字列から特定の文字を削除するR
- 27. 文字列から特定の文字を削除する
- 28. 削除のNULL文字列::
- 29. Crystal Reports XIのテキストフィールドでの文字列の書式設定
- 30. テーブルの文字列の先頭にmysqlが一致する文字列
私たちの中には正規表現の謙虚な学生しかいない人もいれば、ただのマスター(あなたは私のことを知っている人)です。それはあなたが2200時にTDDをしたときに起こることです。リファクタリングはエクササイズとして残されています。 – Gutzofter
'' 00:00:23 "'は結果が '' 23 "'になります。しかし、違反はない、これは依然としてOPが要求したものである。 –