use strict;
my $str = '/*
* PROJECT: Solitaire by Daniel "EmuandCo" Reimer
* LICENSE: Freeware, permission to use under Public Domain
* FILE: base/applications/games/solitaire/lang/en-US.rc
* PURPOSE: English Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer (reimer.daniel@freenet.de)
*/
IDS_NO_SUCH_FILE "FIND: %s: Plik nie został znaleziony\\n", 6, 15, 5
LTEXT_BLANK " "
FONT 8, "Arial"
0 "Some text"
1 " Some text "
2000, "Lautus Theme"
2001, "Lautus Theme" "ffafa"
MENU IDR_MENU_SCIENTIFIC_1
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
GROUPBOX "", IDC_STATIC, 5 ,14, 141, 20
LTEXT "Plik ten może być używany przez system operacyjny lub przez\\n\\
inną aplikację. Modyfikacja tego pliku może spowodować uszkodzenie twojego\\n\\
systemu lub uczynić go mniej funkcjonalnym.\\n\\n\\
Czy na pewno chcesz otworzyć ten plik?", IDC_STATIC, 35, 5, 230, 60
DEFPUSHBUTTON "Tak", IDYES, 125, 55, 50, 14
IDS_USAGE "FIND: Wyświetla wszystkie linie danego pliku, zawierające szukany ciąg znaków.\\n\\n\\
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""ciąg znaków"" [ plik... ]\\n\\
/I Ignoruje wielkość liter"
IDS_NO_SUCH_FILE "FIND: %s: Plik nie został znaleziony\\n"';
my $regex = qr/^(?!FONT|2000)[^"\n]*"\K(?!\s+")([^"]+)/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