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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.