#!/usr/bin/perl use strict; use warnings; sub parse_link { # $_=~s/^['"]|["']$//gs for(@_); my %params = @_; print "$_ = ".$params{$_}."\n" for keys %params; return ''.$params{INHALT}.''; } my $string = 'Das ist Martin: [LINK="http://www.test.de" TARGET=_blank]klick hier[/LINK]'; print $string."\n"; $string =~ s!\[(LINK.+?)\](.+?)\[/LINK\]!parse_link((map{split(/\s+(?=\w+$)/,$_)}split(/\s*=\s*/,$1)),'INHALT',$2)!gse; print $string."\n";