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


in reply to regex problem

It think this solves your problem:
foreach my $email (@split_msg) { my ($title, $tags, $msg); $email =~ m/\[title\](.+)\[title\]/i; $title = $1; # match in single line mode $email =~ m/\[message\](.*)\[message\]/is; $msg = $1; # match is again in $1 print "TITLE:$title\nMESSAGE:$msg\n"; }

Replies are listed 'Best First'.
Re^2: regex problem
by jaimon (Sexton) on Mar 18, 2011 at 14:08 UTC

    And while you are at it, why not shrink the code to

    foreach (...) { my ($title,$tag,$message) = $email =~ /\[title](.*)\[title].*\[tags](. +*)\[tags].*\[message](.*)\[message]/is; ... }
      Yeah, sure, but I didn't want to confuse the OP.