我想拆就信了以下字符串:的Ruby on號碼拆分VS字母
1234B
總是有永遠只4位數字和一個字母。我只是想分割出來。
這是我的嘗試,我認爲我有正確的方法和正則表達式匹配的數字,但我不認爲我的語法或我的正則表達式與我試圖解決的問題有關。
"1234A".split(/^\d{4}/)
我想拆就信了以下字符串:的Ruby on號碼拆分VS字母
1234B
總是有永遠只4位數字和一個字母。我只是想分割出來。
這是我的嘗試,我認爲我有正確的方法和正則表達式匹配的數字,但我不認爲我的語法或我的正則表達式與我試圖解決的問題有關。
"1234A".split(/^\d{4}/)
如果有總是 4個數字和1個字母,就沒有必要使用正則表達式來拆分字符串。只是這樣做:
str = "1234A"
digits,letter = str[0..3],str[4]
你想要的是不明確的,但這種情況一般的解決辦法是:
"1234A".scan(/\d+|\D+/)
# => ["1234", "A"]
它純粹是任何字符串目光從分裂的角度入組4:
"1234A".scan(/.{1,4}/)
# => ["1234", "A"]
另一個沒有正則表達式版本:
str = "1234A"
str.chars.to_a.last # => "A"
str.chop # => "1234"
使用'chars'然後轉換爲數組是一種複雜的方式。那麼'str [-1]'呢? –
它看起來像OP有這個(簡單)問題的麻煩 - 這就是爲什麼我想提供一個或多或少可讀的答案。對於一個紅寶石新手來說,我認爲'str.chars.to_a.last'比'str [-1]'更有意思。我不認爲任何人都可以拿出比Alex更簡單的答案,但是恕我直言,它並沒有傷害到顯示有多少不同的方法可以解決這個問題。 – doesterr
所以,你想分裂的信件。你爲什麼要拆分「不是數字」?還有其他角色類,你知道。標點符號和類似的東西:) –
另外,通過「分割」來定義你的意思。在該輸入中發佈操作的預期結果。 –
你能舉出一個你想要做什麼的例子嗎? –