openlang

Можно ли записывать regexp в elisp литералами?

Моим регулярным выражениям требуется совершенно нелепое количество обратных косых черт. Есть ли в elisp литералы regexp, чтобы можно было писать примерно так

rx"text\(pattern\)"

вместо такого варианта

"text\\(pattern\\)"
Переведено с английскогоПоказать оригинал

Разговор продолжается 2

Следуя доводам
  1. Ссылка на ответ

    Можно вместо этого строить выражения из S-выражений с помощью макроса rx.

    Ваш пример будет выглядеть как (rx "text" (group "pattern"))

    Чтобы показать работу rx, приведу ещё примеры из комментариев в rx.el:

    Выражение ^;;\\s-*\n\\|^\n превращается в

      (rx (or (and line-start ";;" (0+ space) ?\n)
      (and line-start ?\n)))

    Выражение [ \t\n]*:\\([^:]+\\|$\\) превращается в

      (rx (and (zero-or-more (in " \t\n")) ":"
      (submatch (or line-end (one-or-more (not (any ?:)))))))
    Переведено с английскогоПоказать оригинал
  2. Ссылка на ответ

    Литералов regexp нет, но полезной альтернативой многие считают pcre2el (https://github.com/joddie/pcre2el).

    В частности, при работе непосредственно из elisp эту библиотеку можно вызывать следующим образом:

    (rxt-pcre-to-elisp
     "(uvw|xyz)\\w+\\d+")
       ;; => "\\(\\(?:uvw\\|xyz\\)\\)[_[:alnum:]]+[[:digit:]]+"
    Переведено с английскогоПоказать оригинал

Другие стороны того же вопроса

  1. Использование MATLAB через Google Colab

    Можно ли использовать команды MATLAB из Google Colab (облачного Jupyter)? Например, хотелось бы вызывать из Google Colab функ…

    Ответы 2Последняя активность matlab
  2. Может ли gdb поставить точку останова на инструкцию ассемблера по адресу?

    Моя попытка: но, похоже, такой команды не существует. Может ли gdb сделать что-то подобное?

    Ответы 2Последняя активность assembly
  3. Может ли проверка Playwright допускать один из двух текстов?

    Хочу проверить, содержит ли текст one либо two: Можно ли заставить это работать в Playwright? И можно ли сделать то же самое…

    Ответы 2Последняя активность typescript