use strict;
my $str = '\\\\\\\\atxr2.atxr.ru\\\\_resource_test_001001\\\\_dir1
c:\\\\_resource_test_001001\\\\_dir1
\\\\atxr2.atxr.ru\\_resource_test_001001\\_dir1
D:\\
_dir1
\\\\atxr2.atxr.ru\\_resource_test_001004
Локальное имя
_resource_test_001004
Разделяемое устройство
atxr.ru/Users/Administrator
atxr2.atxr.ru/_resource_test_001004
atxr2.atxr.ru\\_resource_test_001004
Удаление,Смена владельца документа,Смена владельца,Удаление документа,Просмотр разрешений документа,Просмотр разрешений,Управление документами,Управление принтером,Просмотр документов,Печать,Установка разрешений документа,Установка разрешений
Подразделение Active Directory
atxr.ru/_resource_test_0011015/_resource2_test_0011015
atxr.ru/_resource_test_0011015/_user1_test_0011015
Содержание папки/Чтение данных,Чтение дополнительных атрибутов,Обзор папок/Выполнение файлов,Чтение атрибутов,Чтение разрешений
(^[\\w а-яА-Я:]*\\\\?$)|(^[A-Z]{1}:\\\\$)|^[\\\\a-zA-Z0-9.-:]*[\\\\\\/](.*)
(^[\\w а-яА-Я:]*\\\\?$)|^[\\\\a-zA-Z. :0-9-]*\\\\\\/?(.*)
(^\\w*[ а-яА-Яa-zA-Z:,\\/]*\\\\?$)|^\\\\*[\\w .:]*\\\\*\\/?(.*)';
my $regex = qr/(^\w*[ а-яА-Яa-zA-Z:,\/]*\\?$)|^\\*[\w .:]*\\*\/?(.*)/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