我想修改我使用Ruby的一部分字符串。使用正則表達式來評估和修改Ruby中的字符串?
字符串是[x, y]
其中y
是我想要更改爲其英文字母的整數。所以說[1, 1]
將成爲[1, A]
和[1, 26]
將成爲[1, Z]
。
一個正則表達式能幫我做到這一點嗎?還是有更簡單的方法?我不會用正則表達式來強調,我現在正在閱讀這些內容。
我想修改我使用Ruby的一部分字符串。使用正則表達式來評估和修改Ruby中的字符串?
字符串是[x, y]
其中y
是我想要更改爲其英文字母的整數。所以說[1, 1]
將成爲[1, A]
和[1, 26]
將成爲[1, Z]
。
一個正則表達式能幫我做到這一點嗎?還是有更簡單的方法?我不會用正則表達式來強調,我現在正在閱讀這些內容。
我能想到的最簡單的辦法是以下
string = "[1,1]"
array = string.chop.reverse.chop.reverse.split(',')
new_string="[#{array.first},#{(array.last.to_i+64).chr}]"
這個工程!謝謝。 –
也許這會有所幫助:
因爲我們沒有一個字母,但我們能查找的位置,創建一個。 這是一個範圍轉換爲數組,所以你不需要自己指定它。
alphabet = ("A".."Z").to_a
然後,我們試圖讓整數/位置出來的字符串:
string_to_match = "[1,5]"
/(\d+)\]$/.match(string_to_match)
也許正則表達式可以得到改善,但是在這個例子中它是工作。 MatchData中的第一個引用在您的「string_to_match」中保存第二個整數。 或者您可以通過「$ 1」獲取。 不要忘記將其轉換爲整數。
position_in_alphabet = $1.to_i
同時,我們也必須記住,數組的索引從0開始,而不是1
position_in_alphabet -= 1
最後,我們可以看看它燒焦我們真的得到
char = alphabet[position_in_alphabet]
例:
alphabet = ("A".."Z").to_a #=> ["A", "B", "C", ..*snip*.. "Y", "Z"]
string_to_match = "[1,5]" #=> "[1,5]"
/(\d+)\]$/.match(string_to_match) #=> #<MatchData "5]" 1:"5">
position_in_alphabet = $1.to_i #=> 5
position_in_alphabet -= 1 #=> 4
char = alphabet[position_in_alphabet] #=> "E"
G reetings〜
看起來你有一個字符串,你應該有一個元組? – Reactormonk
那麼我在做什麼是改變我的Excel單元格的索引。我正在使用的寶石給我的索引[1,1]等,我只是想改變它爲列格式[1,A] –
MS Excel可以處理:選擇工具 - >選項 - >常規選項卡 - > R1C1參考樣式。 – steenslag