помочь с регулярным выражением - PullRequest
0 голосов
/ 22 июня 2010

Как мне перейти от этого:

"01","35004","AL","ACMAR",86.51557,33.584132,6055,0.001499 

к этому:

ACMAR, AL

Ответы [ 4 ]

1 голос
/ 22 июня 2010

Я не совсем уверен, почему вы хотите проанализировать файл CSV с Regexp вместо анализатора CSV.Это делает вашу жизнь настолько намного проще:

require 'csv'

CSV.open('/path/to/output.csv', 'wt') do |csv|
  CSV.foreach('/path/to/output.csv') do |_, _, state, city|
    csv << [state, city]
  end
end
1 голос
/ 22 июня 2010

Если это массив - […].grep(/^[A-Z]+$/), если строка - "…".scan(/[A-Z]+/)

0 голосов
/ 22 июня 2010

Вы можете использовать это

"(.+)","(.+)","(.+)","(.+)",

, а затем объединить группы захвата 3 и 2

0 голосов
/ 22 июня 2010

match: \ "([A-Za-z]. *) \". * \ "([A-Za-z]. *) \"

заменить: \ 2, \ 1

Предполагается, что единственными полями с буквами являются эти два поля. Лучшим решением может быть взорвать на ',' и взять 3-ю и 4-ю строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...