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


in reply to Re: Regexp glitch while parsing record in CSV
in thread Regexp glitch while parsing record in CSV

<kbd>> m#(?:[^,]*,\s*){3}(.*?)\s*,#</kbd>

This worked, thanks--and taught me a couple of things about regular expressions that I'd seen in several of the books but hadn't yet understood.

Still perplexed by the failure of the other regexp. Even though<kbd> [^,]+ </kbd>does indeed include spaces, I'm perplexed by why the<kbd> \s* </kbd>preceding and following it fail to catch spaces when they exist in those locations in the string.<kbd> \s* </kbd>does catch them when it is used this way:

<kbd>split /\s*,\s*/ , $_</kbd>

Thanks again.

  • Comment on RE: Re: Regexp glitch while parsing record in CSV

Replies are listed 'Best First'.
(chromatic) RE: RE: Re: Regexp glitch while parsing record in CSV
by chromatic (Archbishop) on Jul 18, 2000 at 03:20 UTC
    The asterisk can be a little tricky. It means, match zero or more of the preceding. In a construct like \s*[^,]+\s*, the character class does match the spaces and the comma. The + is greedy, too.