http://www.perlmonks.org?node_id=779414


in reply to Re: parse array to replace specific spaces with pipes
in thread parse array to replace specific spaces with pipes

Thanks. The regex expressions work great. However, I have a couple more issues with the data. For example, I would like to replace only the spaces after the first element and before the last element. I need to keep the spaces that are part of the last name. For example:

0211121253 Mike Dell ID06533 0211121253 Leo De Vinci ID02014 0211121253 Joe De La Marco ID65255

Should look like this:

0211121253|Mike|Dell|ID06533 0211121253|Leo|De Vinci|ID02014 0211121253|Joe|De La Marco|ID65255

Also, I would like it to delete any lines that are missing field elements.

0211121253|Mike|Dell|ID06533 Missing data|Leo|De Vinci|ID02014 <--delete line 0211121253|Joe|De La Marco|ID65255

I have been trying to create a regex that keys on "ID" and replaces the space before it. I've been trying these:

$_ =~\b\sID\d; $_ =~^\d+;

But these expressions replace instead of add the pipe.

I would really appreciate a way to add the pipes and not replace the search value in the regex.

Thank you so much for your help,

vince