2016-08-16 2 views
-4

У меня есть требование удалить передние и конечные пробелы в каждом столбце строки, разделенной символом «|».Регулярное выражение Perl для удаления начальных и конечных пробелов каждого столбца в строке

TEST | 100 | 0.00 | TEST STRING Я использую следующие регулярные выражения для удаления пробелов, но это не работает.

$data = "TEST|    100|   0.00 |TEST STRING "; 
$data =~ s/(^|\|)\s+/\1/g; 
$data =~ s/\s+$//; 

Любая помощь будет оценена по достоинству.

+1

у вас есть код? вы видите какие-либо ошибки? – NepCoder

+4

'$ data = ~ s/\ s * \ \ s */|/g;' –

+0

Что сказал Мэтт, а затем ваша последняя строка кода 's/\ s + $ //', чтобы удалить все конечные конечные пробелы – Hambone

ответ

0

Это должно работать, чтобы удалить все конечные и ведущие пробелы для каждого столбца, включая первый.

$data = " TEST |    100|   0.00 |TEST STRING "; 
$data =~ s/\s*\|\s*/|/g; 
$data =~ s/\s+$//; 
$data =~ s/^\s+//; 
print "$data\n";