Perl Language
Разделить строку на неупорядоченные разделители
Поиск…
parse_line ()
Использование parse_line()
Text :: ParseWords :
use 5.010;
use Text::ParseWords;
my $line = q{"a quoted, comma", word1, word2};
my @parsed = parse_line(',', 1, $line);
say for @parsed;
Выход:
"a quoted, comma"
word1
word2
Текст :: CSV или текст :: CSV_XS
use Text::CSV; # Can use Text::CSV which will switch to _XS if installed
$sep_char = ",";
my $csv = Text::CSV->new({sep_char => $sep_char});
my $line = q{"a quoted, comma", word1, word2};
$csv->parse($line);
my @fields = $csv->fields();
print join("\n", @fields)."\n";
Выход:
a quoted, comma
word1
word2
ЗАМЕТКИ
По умолчанию Text :: CSV не
Text::ParseWords
пробелы вокруг символа разделителя, какText::ParseWords
делаетText::ParseWords
. Однако добавлениеallow_whitespace=>1
в атрибуты конструктора достигает такого эффекта.my $csv = Text::CSV_XS->new({sep_char => $sep_char, allow_whitespace=>1});
Выход:
a quoted, comma word1 word2
Библиотека поддерживает экранирование специальных символов (кавычек, разделителей)
Библиотека поддерживает настраиваемый символ разделителя, символ кавычки и escape-символ
Документация: http://search.cpan.org/perldoc/Text::CSV
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow