vak: (Default)
[personal profile] vak
Народ предлагает новый язык rulex для регулярных выражений. Старый язык regex уже достал: в нём никто ничего не понимает. :)

Новый язык гораздо более дружественный для человека. В нём незначащие пробелы, есть комментарии и переменные. Пример с переменными:
let operator = '+' | '-' | '*' | '/';
let number = '-'? [digit]+;

number (operator number)*
Ещё один пример: проверка паролей. Вот регулярное выражение, проверяющее, что в строке есть как минимум одна большая буква, одна маленькая, одна цифра, один знак препинания и всего не меньше восьми символов. Попробуйте разобраться.
^(?=[\S\s]*?\d)(?=[\S\s]*?\p{Ll})(?=[\S\s]*?\p{Lu})(?=[\S\s]*?[\pP\pS])[\S\s]{8}
То же самое на новом языке rulex:
<%
(>> [cp]* [digit])
(>> [cp]* [Ll])
(>> [cp]* [Lu])
(>> [cp]* [P S])
[cp]{8}
Введение в язык: introduction

Полное описание языка: rulex-rs.github.io/docs

Date: 2022-06-07 10:56 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Регулярка интерпретируется везде, и в джаве, и в шелле, и в джаваскрипте.

Date: 2022-06-07 11:44 (UTC)
norian: (Default)
From: [personal profile] norian
интерпретаторы медленные, джава скорее всего компиляет в байткод, а ллвм тот же байткод только в профиль

Date: 2022-06-14 22:36 (UTC)
From: [personal profile] ichthuss
Речь о том, что если эту штуку транспайльнуть в обычные регулярки, то их потом можно засунуть в любой язык, не дожидаясь, пока разработчики этого любого языка воплотят регулярки новомодные.