我需要分割的字符串,食品,比如「巧克力餅乾200克」紅寶石 - 將一個字符串分解提取號碼和測量/重量,然後再轉換numberFo
我需要提取「200克「從字符串,然後按數字分割,然後按測量/重量分割。
所以我需要單獨的「200」和「g」。
我已經寫了一個Ruby的正則表達式來查找字符串的「200克」(有時可出現數量和測量值之間的空間,所以我已經包括他們之間的可選的空格):
([0-9]*[?:\s ]?[a-zA-Z]+)
我認爲它有效。但是現在我得到了與整個String匹配的結果(「200g」),我需要通過數字和度量來分割它。 我寫了兩個正則表達式來分割這些:
([0-9]+)
由數分裂和
([a-zA-Z]+)
用字母來分割。
但.split方法不適用於這些。 我得到以下錯誤:
undefined method 'split' for #MatchData "200"
當然,我需要將200轉換爲數字而不是字符串。
任何幫助,非常感謝, 謝謝!
更新: 我測試了3個正則表達式http://www.rubular.com/。
我的問題似乎是圍繞第一個正則表達式的結果拆分爲數字和度量。
並不清楚'([0-9] * [:\ s]的? [a-zA-Z] +)'。沒有號碼可以嗎?你爲什麼想要一個問號或冒號? '\ s'和''之間的替代是多餘的。 – sawa
它尋找任意數量的數字,可選地後跟一個空格,然後是任意數量的字母 [?:\ s]部分用於可選空白,我發現它在不同的線程中具有可選值正則表達式。 – user098123
謝謝。我早些時候看過一次,但是它並不能幫助我分割最初的正則表達式的結果。 – user098123