Часто получаешь в руки железку, нужно оценить, как она наконфигурена. При этом, размер running config может быть огромным (скажем, полный дамп конфига контроллера из моей лабы в данном примере 21KB ~=29 страниц). Для первого взгляда хочется увидеть, какие секции конфига присутствуют. В качестве примера взята платформа Motorola Solutions WING5 (WLAN), но, в принципе будет работать на любой железке, где конструкция "| include" поддерживает regexp (Cisco, Motorola WING4, другие IOS-подобные интерфейсы).
Читать полностью »
Рубрика «regexp» - 4
[CLI Tip]: обзор running config
2012-07-26 в 11:23, admin, рубрики: regexp, WING5, Беспроводные технологии, Регулярные выражения, Сетевые технологии, метки: regexp, WING5, регулярные выраженияВебинар: Что такое регулярные выражения?
2012-06-01 в 7:37, admin, рубрики: atinfo-webinar, regexp, regular expressions, автоматизация тестирования, вебинар, тестирование, метки: atinfo-webinar, regexp, regular expressions, автоматизация тестирования, вебинар Это четвертый вебинар из цикла бесплатных вебинаров по автоматизации тестирования.
Видеозапись (продолжительность 1 час 10 мин.):
Темы и детали видеозаписи под катомЧитать полностью »
Массовая уязвимость в проектах на Ruby
2012-05-19 в 21:19, admin, рубрики: regexp, ruby, информационная безопасность, Регулярные выражения, метки: regexp, ruby, регулярные выражения Российский разработчик Егор Хомяков сообщил об ещё одной массовой уязвимости в проектах на Ruby. Речь идёт об использовании ^
в начале строки и $
в конце строки регулярных выражений вместо A
и z
.
Дело в том, что ^
и $
в таких случаях воспринимается Ruby как новые строки (n
), что открывает двери для инъекций.
Читать полностью »
Императивный RegExp. Нотация
2012-04-29 в 13:15, admin, рубрики: regexp, Поисковые машины и технологии, Регулярные выражения, регулярные выражения для идиотов, метки: regexp, регулярные выражения для идиотовRegular Expressions For All (REFA)
Основная идея
Существует множество систем для поиска подстрок отвечающих определенной маске. К сожалению они теряют свою мощь как только приходится учитывать многие факторы. Конструкции становятся громозкими, непонятными и трудноподдерживающими.
Именно для этого я попытался создать аналог – REFA. Регулярные выражения для всех.
Его идея в следующем. Как только регулярное выражение перестает быть очевидным – разбить его на два. Оптимизатор при возможности все равно сведет его в одно, таким образом в скорости потерь не будет, но зато код станет яснее.
Читать полностью »
Компилируем регулярные выражения или нет?
2012-03-28 в 21:52, admin, рубрики: regex, regexp, regular expressions, Регулярные выражения, метки: regex, regexp, regular expressionsВ книге Дж.Фридла «Регулярные выражения» я наткнулся на то, что автор намекает не использовать компиляцию регулярных выражений для повседневных случаев и использовать только для критических, когда крайне важна скорость выполнения, особенно если выражение работает с большим объемом текста.
Аналогичное мнение наблюдается и в msdn.
Но так ли это?
Читать полностью »
.Net, UTF-16 и регулярные выражения
2012-03-23 в 15:53, admin, рубрики: .net, regexp, workaround, метки: .net, regexp, workaroundСлучилось мне задание: проверить, есть ли XML-имя правильным. Что может быть проще? Смотрим стандарт, где четко описано, какими символами может имя начинатся, а какими — продолжаться, все просто и понятно:
[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[5] Name ::= NameStartChar (NameChar)*
Практически готовое регулярное выражение, легкая обработка напильником Ctrl+H…
public const string NameStartCharPattern = @":|[A-Z]|_|[a-z]|[u00C0-u00D6]|[u00D8-u00F6]|[u00F8-u02FF]|[u0370-u037D]|[u037F-u1FFF]|[u200C-u200D]|[u2070-u218F]|[u2C00-u2FEF]|[u3001-uD7FF]|[uF900-uFDCF]|[uFDF0-uFFFD]|[u10000-uEFFFF]";
public const string NameCharPattern = NameStartCharPattern + @"|-|.|[0-9]|u00B7|[u0300-u036F]|[u203F-u2040]";
public const string NamePattern = @"(?:" + NameStartCharPattern + @")(?:" + NameCharPattern + @")*";
* This source code was highlighted with Source Code Highlighter.
Пишем тест…
Assert.That(Regex.Match("1a", Patterns.NamePattern), Is.False);
* This source code was highlighted with Source Code Highlighter.
Чисто, просто, понятно… Упал! Читать полностью »