Вопросы с тегом «regular-expressions»

для шаблонов, определяющих поиск или замену строк. Шаблоны, также известные как regex или regexp, описывают строки, которые должны соответствовать при поиске или замене. Emacs предоставляет обширную поддержку шаблонов `regex` во многих командах. Emacs также предоставляет интерактивный конструктор выражений для таких шаблонов.

31
Понимание emacs align-regexp

Я прочитал документацию по Emacs, align-regexpно все еще не могу понять, как она работает. То, о чем я говорю, это его префиксная форма C-uM-xalign-regexp, а не простая форма M-xalign-regexp. Вот мои вопросы: Должен ли первый параметр (регулярное выражение) соответствовать всей строке строки? Что,...

26
Почему регулярные выражения, созданные с помощью построителя регулярных выражений, используют синтаксис, отличный от интерактивных регулярных выражений?

Таким образом, используя построитель регулярных выражений (Mx re-builder), для поиска строк, заканчивающихся на \, требуется «\\ $», а при поиске и замене на регулярное выражение - только «\ $». Я ожидал бы, что построитель регулярных выражений создаст непосредственно используемые выражения, так...

22
Что такое регулярное выражение для соответствия символу новой строки?

В регулярном выражении Emacs \nне соответствует символу новой строки \n. Правильно ли я, что $соответствует позиции между символом новой строки и символом прямо перед символом новой строки. например, для строки abc\n, $соответствует позиции между cи \n? Какое регулярное выражение соответствует \n?...

18
Получить все регулярные выражения в буфере в виде списка

Сегодня на сайте Code Golf Stack Exchange я нашел этот ответ в Clojure на вопрос «Получить все ссылки на веб-странице». (->> (slurp "http://www.stroustrup.com") (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+")) Без модного макроса, это просто так: (re-seq #"(?:http://)?www(?:[./#\+-]\w*)+" (slurp...

16
Elisp regexps ^ и $ vs `and '

В руководстве описаны специальные символы регулярного выражения ^и $. Как и в большинстве известных мне диалектов регулярных выражений, они соответствуют началу или концу строки. Однако я также обнаружил, что есть `и 'доступные персонажи. Основываясь на найденном здесь объяснении , они, похоже,...

15
Как я могу тестировать и использовать регулярное выражение Perl в интерактивном режиме?

Скажем, у меня есть буфер с текстом. Я хотел бы проверить регулярное выражение (в идеале тип Perl) в моем буфере и сделать так, чтобы Emacs выделял совпадения на нем. Например, следующее регулярное выражение ( взято из Википедии ): (?<=\.) {2,}(?=[A-Z]) будет соответствовать следующему тексту:  ...

15
Как мне создать динамическое регулярное выражение с rx?

Я хочу использовать rxдля создания регулярных выражений со значениями времени выполнения. В настоящее время я делаю это: (setq strings '("foo" "bar" "baz")) (eval `(rx symbol-start (or ,@strings) symbol-end)) Тем не менее, я бы предпочел не использовать eval. Я нашел rx-to-string, но не ясно, какую...

14
Есть ли эквивалент для подстановочных команд в стиле sed из vim?

Одна из вещей, которые я пропускаю в vim - это возможность ввести команду подстановки, которая будет работать в несколько строк, например: :/begin/,/end/s/foo/bar/g Приведенная выше команда заменяет «foo» на «bar», начиная с первой строки, содержащей «begin», и заканчивая следующей строкой после...

14
Есть ли в elisp литералы регулярных выражений?

Огромное количество обратных косых черт, которые требуют мои регулярные выражения, довольно безумно. Есть ли в elisp литералы регулярных выражений, поэтому я могу написать что-то вроде rx"some\(regexp\)" вместо того "some\\(regexp\\)"...

12
Поэтапно заменить данную строку

Допустим, у меня есть такой текст ниже: AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) AC (пп) Теперь я хочу заменить на nnцифры, как так AC (0) AC (1) AC (2) AC (3) AC (4) AC (5) AC (6) AC (7) AC (8) AC (9) AC (10) Я имел обыкновение M-x replace-regexp nn RET \#...

12
поддержка регулярных выражений смотреть назад и вперед?

Мне нужно выполнить запрос регулярного выражения заменить, так что fooв foo barсовпадает, но fooв foo bazнет. Обычно я бы использовал регулярное выражение, например foo(?=bar). Тем не менее, похоже, что Emacs не может сделать это? Vim кажется способным , но злой режим в Spacemacs не...

12
Как я могу попрактиковаться в поиске и замене регулярных выражений в интерактивном режиме в Emacs?

Поиск и замена с использованием регулярных выражений, несомненно, является мощным инструментом для пользователя Emacs, который может регулярно выполнять эти действия. Однако, как новичок в Emacs (и / или программировании), регулярные выражения необходимо изучать и практиковать. Могу ли я изучать и...

11
Как искать арабское слово в тексте без его диакритики / ударения?

В арабском, как и в некоторых других языках, есть диакритические знаки для улучшения произношения. Не существует соглашения о том, сколько диакритических знаков должно быть написано для одного слова. Некоторые используют минимум (который я предпочитаю) как раз достаточно для устранения...

10
«оглядываясь назад» производительность

У меня есть код, использующий (looking-back … (line-beginning-position)). Строка документа looking-backгласит, что эту функцию лучше избегать из-за медлительности. Мне интересно, будет ли следующий подход быстрее? (save-excursion (goto-char (line-beginning-position)) (looking-at regexp...

10
Злой режим и регулярные выражения

В Vim, если я хочу найти все имена переменных LX, где X - число, я могу просто напечатать /L\d . Тем не менее, это не похоже на работу evil. Есть ли другой синтаксис для регулярных выражений в режиме Evil, или мне придется использовать некоторые функции Emacs для поиска и замены с использованием...

9
Регулярное совпадение с литеральной строкой

Я хочу написать функцию (или использовать существующую), которая будет принимать любую строку и производить правильно экранированный Regex, который соответствует только этой строке. Какой самый быстрый и простой способ сделать...

9
Выровнять вертикальные столбцы чисел по десятичной запятой

Я написал этот пост в Emacs. Чтобы таблицы выглядели хорошо, я решил отрегулировать интервал, чтобы аккуратно выстроить десятичные дроби. Исходный формат из базы данных выглядел так: emacs 11505 227 3.6 3.3 1.9 68.9 93.5 68 vi 1087 289 11.1 6.9 2.9 71.7 96.2 9 wolfram-mathematica 2993 360 4 2.2 1.9...