После более детального ознакомления с мануалом редактора WinEdt (предназначенного почти исключительно для создания LaTeX-документов) открыл дополнительные возможности инструмента поиска/замены этой программы. Чтобы активировать «умный» поиск, нужно поставить галочку в чекбоксе Regular Expressions в меню Find или Find and Replace, в результате чего строка поиска превратится, по сути, в командную строку, с помощью которой можно творить чудеса. То есть сделать с текстом можно будет практически всё, другой вопрос, что иногда чересчур извращённо (поэтому в случае серьёзных задач создание соответствующих макросов выглядит более уместным).Читать полностью »
Рубрика «Регулярные выражения» - 9
Регулярные выражения в WinEdt: поиск формул с неиспользуемыми номерами
2013-09-03 в 11:54, admin, рубрики: latex, regular expressions, Регулярные выражения, метки: latex, regular expressionsНабор регулярных выражений для MarkDown
2013-08-16 в 11:38, admin, рубрики: markdown, regexp, regular expressions, разработка под iOS, Регулярные выражения, метки: markdown, regexp, regular expressions Добрый день, уважаемые пользователи Хабра.
В этом посте хотел бы поделиться тем, с чем игрался долго и надеюсь это будет кому-то полезным.
Недавно столкнулся с тем, что в новом проекте надо было сделать подсветку синтаксиса для языка разметки MarkDown. В последнее время он достаточно популярен в разных местах. Долго гуглил, в результате пришлось все писать самому и долго тестировать чтобы все работало правильно.
Под катом набор регулярных выражений, которые ищут основные элементы разметки MarkDown в варианте для Objective-c.
Читать полностью »
Хватит писать регулярные выражения. Используйте вербальные выражения
2013-08-12 в 15:18, admin, рубрики: Регулярные выражения, метки: регулярные выражения GitHub-пользователь jehna нашёл интересный метод ухода от реализации сложных регулярных выражений традиционным способом.
Вербальные выражения превращают сложный и иногда нетривиальный путь от логики до собственно регулярного выражения в ненавязчивую прогулку с использованием связанного набора функций.
Читать полностью »
Регулярные выражения в расчетах ядерной трансмутации
2013-07-31 в 15:42, admin, рубрики: c++, Visual Studio, Регулярные выражения, метки: регулярные выраженияВведение
Процессы ядерных превращений (трансмутаций) в веществе, происходящие под воздействием нейтронного облучения, представляются особенно важными при выборе материалов, которые используют в качестве конструкционных для широкого круга узлов и устройств ядерных реакторов различного типа. Ядерные трансмутации приводят к изменению химического и изотопного состава, происходит накопление радиоактивных и стабильных продуктов, содержание которых определяет времена безопасной эксплуатации устройств в ядерно–энергетических установках с точки зрения как радиационной, так и функциональной [1, 2].
Моделирование ядерного процесса в виде линейной системы обыкновенных дифференциальных уравнений приводит к задаче дискретной оптимизации схемы нуклидных превращений эвристическими алгоритмами из методов дискретной глобальной и локальной оптимизации с элементами математической теории принятия решений и теории искусственного интеллекта [3,4,5].
В качестве инструментального средства пользователя разработана под Windows XP УНИВЕРСАЛЬНАЯ ПРОГРАММА МЕТРОЛОГА (УПМ). Настоящая версия УПМ предназначена для проведения расчётов эффектов ядерной трансмутации, повреждающей дозы в конструкционных материалах при реакторном облучении с использованием данных БД нейтронно-физических характеристик, химического состава материала и схем нуклидных превращений.
Объём нейтронно-физических данных в созданной для УПМ БД занимает 1,1 Мб. Состоит из 162 записей по энергетическим спектрам нейтронов измеренных или рассчитанных для различных точек и конфигураций исследовательских реакторов. Данные по химическому составу конструкционных материалов составлены на основе реально используемых в облучательных устройствах, в конструкторских элементах исследовательских реакторов (чехлы экранных сборок, оболочки тепловыделяющих элементов и т.д.). Данные по разветвлённым блочным схемам нуклидных превращений обновляются на основе проводимых расчётов ядерной трансмутации.
В расчётах ядерной трансмутации и в основе обработки текстов с результатами расчётов приложение широко использует регулярные выражения. Регулярные выражения предоставляют мощный, гибкий и эффективный метод обработки текста. Обширные возможности сопоставления шаблонов, предоставляемые регулярными выражениями, позволяют быстро анализировать большие объемы текста, проверять текст на соответствие определенным заранее шаблонам (например, формату интегрированных библиотек оценённых ядерных данных по сечениям реакций взаимодействия нейтронов с ядрами атомов ADL-3[6], FENDL-2.0[7], ENDF/B-VII.0[8], и JEFF-3.1.1[9] ), извлекать, изменять, заменять или удалять подстроки текста, а также добавлять извлеченные строки в коллекцию для формирования отчетов.
Для создания научной программы использовались возможности класса System.Text.RegularExpressions.Regex в среде разработки Microsoft VISUAL STUDIO .NET.
Читать полностью »
Пишем свой шаблонизатор на Python
2013-05-25 в 21:59, admin, рубрики: python, перевод, переводы, Программирование, Регулярные выражения, шаблонизатор, метки: python, перевод, Программирование, регулярные выражения, шаблонизатор Наверняка многие из вас задумывались о том, как устроены шаблонизаторы, какого его внутреннее устройство и каким образом происходит преобразование в фрагменты HTML-кода, однако не догадывались о каких-то особенностях его реализации. Поэтому давайте реализуем упрощенную версию движка шаблонов и продемонстрируем как это работает «под капотом».
Читать полностью »
Прививка от реальности: розовые очки для браузера
2013-05-20 в 19:17, admin, рубрики: Google Chrome, javascript, лингвистика, расширения chrome, Регулярные выражения, регулярные выражения для идиотов, русский язык, метки: лингвистика, расширения chrome, регулярные выражения для идиотов, русский языкПочему вокруг так много матерятся? Одно дело, когда на ногу падает молоток, или когда надо срочно сообщить коллеге, что он не успевает сделать макет сайта. Но в Интернете-то у автора всегда должно быть достаточно времени, чтобы подобрать красивую фразу и показать себя грамотным интеллигентным человеком с большим словарным запасом. К сожалению, редок тот случай, когда обсценная лексика действительно уместна — навскидку, один на сотню.
Некоторые владельцы форумов, чатов и блогов борются с обилием мата организационными мерами (устанавливая правила) или техническими (используя парсеры), но самый большой недостаток существующих антимат-систем — это многочисленные ложные срабатывания, порождающие удивительные неологизмы вроде заштричлен, застрапенис и скигей (кто не догадался — в оригинале было слово «скигей»). Также скрипты (а зачастую — и сами авторы текстов) иногда заменяют буквы из середины бранных слов на звёздочки (***) или символы "#$%^", из-за чего у меня возникает подозрение, что у этих людей вместо половых органов чёрные квадратики.
Мы пойдём иным путём: пусть читатель сам решает, что он хочет видеть на экране: красочный русский мат или не менее красочный литературный русский язык. Мы разработаем расширение для браузера, заменяющее ненормативную лексику на синонимичные литературные выражения. Основным и решающим требованием к расширению является естественность и читабельность текста после замены. Мы не хотим обеднять язык, просто изымая из него мат — мы обогащаем его, предлагаем взамен нечто большее.
В нижеследующей статье я провожу поверхностное лингвистическое исследование русского мата, а также даю краткий курс регулярных выражений в JavaScript и руководство по созданию расширений для браузера Chrome.
Также заранее заявляю, что не обнаружил в правилах сайта ни слова об использовании мата в постах (если не прав — поправьте), так что, под хабракатом его будет много. Разумеется, исключительно в благородных исследовательских целях. Извините, если кого-то этим оскорбляю.
Читать полностью »
Кроссворд из регулярных выражений: интерактивная версия
2013-04-09 в 9:36, admin, рубрики: css3 transform, html, javascript, кроссворд, ненормальное программирование, Регулярные выражения, метки: css3 transform, html, javascript, кроссворд, регулярные выражения Вдохновлённый недавним постом и комментарием к нему, решил сделать аналогичную интерактивную версию.
Есть навигация с клавиатуры, подсветка активных строк, а также индикация соответствия строки регулярному выражению. Для удобства подсказки выделенной ячейки поворачиваются горизонтально.
Разметка – чистый HTML+CSS3.
Почти работает в последних версиях популярных браузеров. В IE9 глючит навигация мышкой, в FF и Opera наблюдаются проблемы с производительностью. И только Chrome – 100% OK.
Буду благодарен за советы по оптимизации.
Ссылка – вот. Детали реализации – под катом.

Читать полностью »
Прекратите проверять Email с помощью регулярных выражений!
2013-04-03 в 21:12, admin, рубрики: email, regex, валидация, переводы, Программирование, Регулярные выраженияСерьезно, прекратите. Это пустая трата времени и сил. Поищите регулярку для проверки Email в Google, взгляните на нее — и захочется отойти подышать свежим воздухом. Вспоминается одна очень известная цитата:
Некоторые люди, сталкиваясь с проблемой, думают: «О, я воспользуюсь регулярными выражениями».
Теперь у них две проблемы.Джэйми Завински, regex.info
Как найти или проверить e-mail адрес
2013-04-03 в 18:26, admin, рубрики: e-mail, regexp, regular expressions, Регулярные выраженияНаибольшее число отзывов, не говоря уже об «ошибках», мне приходит на регулярное выражение e-mail адреса:
b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b
Я утверждаю, что это регулярное выражение определяет любой e-mail адрес. В обратной связи обычно показывается один e-mail адрес, который не подпадает под это выражение; также, в отчетах об «ошибках» содержится предложение создать идеальный regexp.
Как я объясню ниже, мое утверждение справедливо тогда, когда вы принимаете мое определение того, что есть действительный адрес электронной почты, а что — нет. Если вы используете другое определение, то вам придется подкорректировать выражение. Определение действительного e-mail адреса — это отличный пример, показывающий, что
- перед написание выражения вы должны точно знать, что должно совпасть, а что нет;
- следует разрешить компромисс между точностью и практичностью.
4-числовая система нумерации версий с датой и минорами
2013-04-02 в 17:28, admin, рубрики: javascript, regexp, ненормальное программирование, Регулярные выражения, метки: regexp
В расширениях Хрома принято указывать версию скрипта в виде не более чем 4 чисел, разделённых точками, и величиной не более 32767 каждое и не начинающихся с цифры 0. Этого более чем достаточно, если в номер версии включены обычные данные: версия, подверсия, сборка. Если в версию хотим поместить дату в виде 3 чисел, то в наиболее удобной для чтения записи (версия.год.месяц.день) числа года, месяца и дня занимают 3 места из 4. На версию остаётся первое число (как более приоритетное перед датой), а на подверсию и минор ничего не остаётся. Задача: как расположить минорную версию, чтобы уложиться в формат, чтобы дата была читаемой, а версия с минором при сравнении 2 строк занимала правильное место в ряду версий? Кроме того, нужна процедура выделения даты и версии с минором из общей строки.
Читать полностью »
