use strict;
my $str = 'abnehmen (nahm ab, abge-
nom men) itt: csökken, fogy
sich abwenden von (Dat)
elfordul vkitől/vmitől
sich etw. anhören meghallgat vmit
anregen (fel)élénkít, felpezs-
dít, ösztönöz
jdm. auffallen (fiel auf, ist auf-
gefallen) feltűnik vkinek vmi
sich etw. ausleihen (lieh aus,
ausgeliehen) kikölcsönöz magának vmit
aussterben (starb aus, ist aus-
gestorben) kihal
auszeichnen itt: jellemez vkit/vmit, jellemző vkire/vmire
behandeln kezel vkit/vmit; tárgyal/kifejt vmit
benachrichtigen értesít
jdn. bilden képez, művel vkit
davonlaufen (lief davon, ist
davongelaufen) elfut
jdm. drohen (meg)fenyeget vkit
durchlesen (las durch, durch-
gelesen) átolvas
in etw. eintauchen (tauchte
ein, ist eingetaucht) bele-
merül vmibe
sich entscheiden für (Akk)
(entschied, entschieden)
dönt vmi/vki mellett
jdn. erwischen bei (Dat) vkit
rajtakap vmin
fesseln lebilincsel, leköt
fördern erősít, (elő)segít, támogat
jdm. gelingen (gelang, ist ge-
lungen) sikerül vkinek vmi
jdm. etw. gestehen (gestand,
gestanden) bevall vkinek vmit
graben (grub, gegraben) itt: (bele)vés, (bele)metsz
sich kümmern um (Akk) törő-
dik vkivel/vmivel
liegen an (Dat) (lag, gelegen)
múlik vkin/vmin, függ vkitől/vmitőlloben dicsér
senken csökkent
schulen fejleszt, képez
schwanken (zwischen) inga-
dozik, nem tud dönteni (dolgok között)
jdm. etw. stehlen (stahl, ge-
stoh len) ellop vkitől vmit
steigern növel, fokoz
übernehmen (übernahm, über-
nommen) átvesz, (át)vállal
überraschen meglep
überreden zu (Dat) rábeszél vmire
übersehen (übersah, überse-
hen) nem vesz észre, elnéz
etw. übersetzen lefordít
vergleichen (verglich, vergli-
chen) összehasonlít
verlernen elfelejt
vermitteln közvetít
vertonen megzenésít
vervielfältigen sokszorosít
verwenden használ
jdm. etw. vorlesen (las vor,
vor gelesen) felolvas vkinek vmit
etw. vorstellen bemutat vmit
zusammenstellen összeállít';
my $regex = qr/^(?P<deutsch>(?:(?P<subjekt>(?:in\s)?(?:(?P<sich>sich)|etw\.|jd[mn]\.))\s)*(?P<wort>[\wäÄéöÖüÜß]+)(?:\s(?:(?P<rektion>(?:von|für|an)\s\((?:Dat|Akk)\))|\((?P<extra>[^\)]+)\)))*)\s(?P<definition>(?:[\wáéíóöőúüűÁÉÍÓÖŐÚÜŰ]|[ :,\/\(\);]|\-\n)+)$/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html