ruby
  • regex
  • match
  • 2015-10-12 48 views 0 likes 
    0

    我有一個字符串:的數字數組中的Ruby正則表達式匹配計數元素

    'my_array1: ["1445","374","1449","378"], my_array2: ["1445","374", "1449","378"]' 
    

    我需要從my_array2: [...]匹配的數字都集和統計有多少人在那裏。

    我需要做這樣的事情與正則表達式和紅寶石MatchData

    string = 'my_array1: ["1445","374", "1449","378"], my_array2: ["1445","374", "1449","378"]' 
    matches = string.match(/my_array2\:\s[\[,]\"(\d+)\"/) 
    count_matches = matches.size 
    

    預期的結果應該是4 是什麼做的正確方法是什麼?

    +1

    我會使用[this regex](http://rubular.com/r/LSOZnNU7z6)來匹配僅限數字的數組。它不適用於混合類型的數組。 –

    +0

    您的字符串無效。你沒有正確地逃過''',但是不清楚它是什麼意思。 – sawa

    +0

    這聽起來像一個XY問題。該字符串從哪裏來? – sawa

    回答

    0

    如果您保證my_array2的內容始終是數字,您可以簡單地使用分割兩次。首先你拆分my_array2: [",然後拆分,。這應該給你以後的項目數量。

    如果你不能保證,你仍然可以通過my_array2分裂,而不是分裂再次,您使用模式,如"\d+"(或"\d+(\.\d+)?如果您有浮點值)和計數。

    該表達式的一個例子可用here

    相關問題