我有這個字符串:$29.99
。我想刪除小數點.
並用<sup>
標記圍繞小數部分99
:$29<sup>99</sup>
。一個字符串的最後3個字符的Ruby正則表達式
雖然格式可以改變;小數點可以是逗號而不是點:,99
。
獎金:另外,一個正則表達式提取貨幣標籤,考慮到它可以是可變長度(R $,$,R等等)。
我有這個字符串:$29.99
。我想刪除小數點.
並用<sup>
標記圍繞小數部分99
:$29<sup>99</sup>
。一個字符串的最後3個字符的Ruby正則表達式
雖然格式可以改變;小數點可以是逗號而不是點:,99
。
獎金:另外,一個正則表達式提取貨幣標籤,考慮到它可以是可變長度(R $,$,R等等)。
str = '$29.99'
result = str.gsub(/\.(\d+)$/, '<sup>\1<sup>')
-1由於OP請求不在Ruby中。 – 2013-04-30 13:47:33
@CharlesCaldwell錯過了,添加了紅寶石版本。 – xdazz 2013-04-30 13:52:30
太棒了!用upvote替代downvote。 – 2013-04-30 13:55:42
1.9.3p385 :012 > "$29.99".gsub(/(\.|,)/,'<sup>').concat("</sup>")
=> "$29<sup>99</sup>"
並提取貨幣:
1.9.3p385 :020 > ("USD>as$29.99" =~ /(.*?)\d.*/ ; $1)
=> "USD>as$"
這處理所有非紅利點方案:
1.9.3p392 :009 > "$29.99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>")
=> "$29<sup>99</sup>"
1.9.3p392 :010 > "$29,99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>")
=> "$29<sup>99</sup>"
1.9.3p392 :011 > "R$29,99".gsub(/(\d+)[,.](\d+)/, "\\1<sup>\\2</sup>")
=> "R$29<sup>99</sup>"
什麼正則表達式你嘗試過這麼遠嗎? – 2013-04-30 13:24:25
嘗試http://rubular.com/,很棒。 :) – alfa 2013-04-30 13:26:43
我在努力,但我無法弄清楚如何得到最後3個字符。 – dee 2013-04-30 13:28:07