use strict;
my $str = 'Michael Hohmann P.v.-Mallinckrodt-Weg 13a
Experte für Marketing Automatisierung 33154 Salzkotten
Tel: (0 52 58) 9 90 90-0
Dianastraße 1 030 - 40 39 33 33
13469 Berlin mhugo@stahlsdfsdf.berlin
Dipl.Ing. Arch. Innenraum Großgörschenstrasse 5
10827 Berlin Schöneberg
Geschäftsführer Gubeslstrasse 24
M +41 79 999 99 99 CH-6300 Zug
Friedrichstraße 94
Telefon +49 30 33333-33333 10117 Berlin
Mobil +49 333 3333333 Lichtenberger Straße 17 a
wilfreid.kroll@sdfsdf.de 10243 Berlin
Unit 13, Le Moulin, Rue de Bali
Pereybére 99999, Mauritius
Wolfgang Leobner Unterer Grund 10
Ressavarstraße 45, A-9384 Hartberg
General Manager Horbeller Straße 33
Poppelsdorfer Allee 89
93828 Bonn
Carl-Benz-Straße 13
D-82937 Schweinfurt
Luisenstraße 33 | 93720 Bad Dürrheim
Schwändi 7 * 8486 Rikon
Bogener Straße 8 94827 Neukirchen
93939 Neuötting
83927 Mannheim-Schönau
Wörrst Straße 3
Türrschmidtstr. 2a
Lambertusweg 2
Lerchenweg 4
D-29304 Eching am Ammersee
Schönbuchstr. 34
Neuenhofer Str. 7
Meinekeestr. 26, 29304 Berlin
Carmenstraße 17 - 18
13432 Werder (Havel)
Lenelshof 1 99930 Ratingen
Rothenbasdfchaussee 80c
Poller Kirchweg 990
Poller Kirchweg 9903
Weilstetter Weg 34B
Gartenstraße 88U Fax: 93 (0) 33333 - 33333
09392 Crottendorf Email: info@sdfsdf.de
hauptstr.51
Pantelsdfs Str. 33, A-3929 St. Pantaleon, Austria
D - 88889 Dreieich
Bahnhofstr. 77 93000 Kornewestheim Tel. 929293-39392
Friedrichstraße 180 - 39302 Berlin
Kupferteichweg 39 44444 Hamburg
HEP Immobilien GmbH - Willicher Straße 1 - 33333 Willich
Rosengasse 19
A-3456 Groß Enzersdorf
Karsten Poppe Neue Straße 22
Finanz-/Versicherungmakler 33333 Wildeshausen
';
my $regex = qr/\b((?<street>(\p{L}[ ]?[-.]*)+ [0-9]{1,3}([ ]?[A-Za-z])?))\b|\b((?<zipcode>([A-Z-]+)?[0-9]+)[, ](?<city>(\p{L}[- ]?)+))\b/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