use strict;
my $str = '$translateProvider.translations(\'de\', {
WASTE_MANAGEMENT: \'Abfallmanagement\',
WASTE_TYPE_LIST: \'Abfallarten\',
WASTE_ENTRY_LIST: \'Abfalleinträge\',
WASTE_TYPE: \'Abfallart\',
TREATMENT_TYPE: \'Behandlungsart\',
TREATMENT_TYPE_STATUS: \'Status Behandlungsart\',
DUPLICATED_TREATMENT_TYPE: \'Doppelte Behandlungsart\',
TREATMENT_TYPE_LIST: \'Behandlungsarten\',
TREATMENT_TARGET_LIST: \'Ziele Behandlungsarten\',
TREATMENT_TARGET_ADD: \'Ziel Behandlungsart hinzufügen\',
SITE_TARGET: \'Gebäudeziel\',
WASTE_TREATMENT_TYPES: \'Abfallbehandlungsarten\',
WASTE_TREATMENT_TARGETS: \'{{Abfallbehandlungsziele}}\',
WASTE_TREATMENT_TYPES_LIST: \'{{Abfallbehandlungsarten}}\',
WASTE_TYPE_ADD: \'Abfallart hinzufügen\',
UNIT_ADD: \'Einheit hinzufügen\'
})';
my $regex = qr/(?<=^\$translateProvider\.translations\('de', {)[\s\S]*(?=}\)$)/p;
if ( $str =~ /$regex/ ) {
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