У меня есть этот большой XML-файл. Есть поле, в котором я хочу разделить поле по пространству.Невозможно разбить/удалить пробел в строке в Ruby, потому что это символ NBSP
Так что я сделать следующее, чтобы сохранить расщепленные данные в & б:
components = a.split(' ')
a = components[0]
b = components[1]
Однако некоторые расщепляются правильно, но некоторые из них не (когда все они содержат пробелы). Например, когда я пытаюсь разделить 'Maria Canada'
, он не разделяется пробелом.
Я не уверен, почему. Если открыть файл в Vim и скопировать этот конкретный неправильный текст, я могу разделить их правильно рубиновую интерактивную оболочку:
'Maria (Canada)'.split(' ')
=> ["Maria","(Canada)"]
UPDATE
Ok причина NBSP. Я распечатал те строки, которые не разбиваются на консоль, вызывая ошибки. Я скопировал текст и вставил в irb. Этот скопированный текст также нельзя разделить на irb, и я не могу разделить это пространство.
>> ' '.strip
=> " "
Я затем запустить ord
и обнаружил, что пространство является символом NBSP (его код 160):
>> ' '.ord
=> 160
Так файл XML содержит пространство и символы NBSP. Я думаю, что Vim автоматически конвертирует NBSP в пробелы, и именно поэтому, когда я пытался копировать его из vim, это больше не NBSP.
Теперь мне просто нужно выяснить, как бороться с NBSP.
Представьте себе, что вы читаете этот вопрос без какой-либо предыдущей мысли о том, что вы делаете , Как вы думаете, вы можете понять, о чем идет речь? – sawa
Извините, что я попытался прояснить это немного – lulalala
Возможно, это на самом деле символ табуляции? попробуйте a.split (/ \ s + /) и посмотрите, помогает ли это. – pguardiario