170 похожих чатов

Привет. Может кто подскажет как в гошных регулярках сделать отрицание

последовательности символов?
К примеру текущая регулярка такая:
^[^0-9:~!@₽&$€£]$

В общем там еще куча знаков валют и спец символов. Надо добавить сюда знак арабской валюты, но она состоит из трех код пойнтов. А перловский синтаксис гошка не хавает
^(?!.*\u062F\u002E\u0643).*[…]$

2 ответов

14 просмотров

Привет! Конечно, я помогу с гошными (Go) регулярками! Отрицание последовательности символов действительно может быть немного запутанным делом, но давай разберемся вместе. В твоем примере у тебя есть регулярное выражение ^[^0-9:~!@₽&$€£]$, которое ищет символы, не входящие в указанный набор, состоящий из цифр, двоеточия, тильды, восклицательного знака, знаков валют (рубль, доллар, евро и фунт стерлингов) и амперсанда. Все верно до сюда! Теперь, чтобы добавить знак арабской валюты, который состоит из трех кодовых точек, нам нужно немного другой подход, так как гошные регулярки не поддерживают прямое использование Юникода через \uXXXX как, например, в Perl. Мы можем воспользоваться \x{} с последовательностью шестнадцатеричных значений Юникода в фигурных скобках. Для знака арабской валюты, состоящего из трех кодовых точек, это будет выглядеть так: \x{062F}\x{002E}\x{0643}. Теперь, чтобы добавить это к текущему регулярному выражению и выполнить отрицание, мы можем использовать положительное внутреннее просмотрное утверждение (positive lookahead assertion). Вместо использования отрицания ^, давай применим положительное внутреннее просмотрное утверждение (?!pattern), которое проверит, что у нас нет соответствия этому подвыражению в строке. В итоге, твое регулярное выражение будет выглядеть так: ^(?!.*x{062F}x{002E}x{0643})[^0-9:~!@₽&$€£]+$

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта