Регулярные выражения : Комментарии



Регулярные выражения можно комментировать двумя способами, конструкцией многострочного текста в AutoIt3 и специальной конструкцией внутри регулярного выражения. Как видно из первых двух примеров комментарий столбиком выглядит более читабельным.


Пример многострочной конструкции в AutoIt3

$aRes = StringRegExpReplace('http://www.autoitscript.com/forum/index.php?showtopic=118648', _
        '(?:https?://)?' & _ ; возможно протокол
        '(?:www\.)?' & _ ; возможно www
        '([\w.]+)' & _ ; домен
        '(?:.*)' _ ; оставшаяся часть ссылки
        , '\1')
MsgBox(0, 'Домен', $aRes)


$sPattern = _
        '(?:https?://)?' & _ ; возможно протокол
        '(?:www\.)?' & _ ; возможно www
        '([\w.]+)' & _ ; домен
        '(?:.*)' ; оставшаяся часть ссылки
$aRes = StringRegExpReplace('http://www.autoitscript.com/forum/index.php?showtopic=118648', $sPattern, '\1')
MsgBox(0, 'Домен', $aRes)


Пример с присоединением к переменной комментируемого блока регулярного выражения

$sPattern = '(?:https?://)?' ; возможно протокол
$sPattern &= '(?:www\.)?' ; возможно www
$sPattern &= '([\w.]+)' ; домен
$sPattern &= '(?:.*)' ; оставшаяся часть ссылки
$aRes = StringRegExpReplace('http://www.autoitscript.com/forum/index.php?showtopic=118648', $sPattern, '\1')
MsgBox(0, 'Домен', $aRes)


Метасимвол позволяющий комментировать регулярные выражения

$aRes = StringRegExp('192.168.30.195', '(\d+)(?#это комментарий)', 1)
If Not @error Then MsgBox(0, 'Сообщение', $aRes[0])