У меня есть строка: @address = "10 Мэдисон-авеню, Нью-Йорк, штат Нью-Йорк - (212) 538-1884"
Как лучше всего это разделить?
<p>10 Madison Avenue,</p>
<p>New York, NY - (212) 538-1884</p>
break_at = @address.index(",") + 1
result = "<p>#{@address[0, break_at]}</p><p>#{@address[break_at..-1].strip}</p>"
Даже если @address.split(",",2)
правильно. Выполнение теста для split
, partition
и решения regex
, такого как @adress.match(/^([^,]+),\s*(.+)/)
, показало, что разбиение немного лучше, чем split
.
На компьютере с процессором Intel Core i5 с тактовой частотой 2,6 ГГц, 16 ГБ ОЗУ и 100_000
работает:
user system total real
partition 0.690000 0.000000 0.690000 ( 0.697015)
regex 1.910000 0.000000 1.910000 ( 1.908033)
split 0.780000 0.010000 0.790000 ( 0.788240)