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

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

3
Найти и заменить с помощью регулярных выражений
У меня есть файл с кучей пользовательских настроек по умолчанию. Я хочу изменить часть текста, но я с трудом придумываю совпадения и заменители. Используя следующий пример: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user and for the login …

2
Возможен ли поиск в системе регулярных выражений vim?
Я столкнулся со многими ситуациями в vim, где было бы полезно иметь обходные утверждения. Я попытался использовать стандартный синтаксис lookaround ( (?=)и (?!)т. Д.) , Но, похоже, vim не поддерживает это. Имеет ли vim эквивалентный синтаксис для таких операторов?

3
Как сделать регулярные выражения не жадными?
Я пытаюсь использовать регулярные выражения для замены текста в файле (заменить полный URL-адрес просто протокол / домен /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc К сожалению .*?не совпадает строка, даже пытаясь уйти от ?квантификатора? Как избежать использования жадного квантификатора в vim?

1
Могу ли я найти объединяющий символ Unicode в Vim?
У меня есть файл с символом ã(строчная + комбинационная тильда). Encodingи fileencodingоба utf-8. gaшоу <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (но с фактическим сочетанием тильды в <>) и g8показывает 61 + cc 83 Поиск с /a\%u0303работает нормально. Поиск просто \%u0303дает E486 Pattern Not Found. …

5
Шаблон синтаксиса Vim для выделения аргумента ключевого слова python
Я борюсь с изучением регулярных выражений vim (я тоже не очень хорошо знаю другие регулярные выражения), поэтому основная проблема состоит в том, чтобы определить регулярное выражение, которое будет соответствовать some_function_call(simple_value, keyword=value) Ключевое слово в этом примере. Таким образом, оно должно соответствовать слову, если оно внутри паренов и после него должно …

1
Почему Vim Regex не позволяет более 9 групп захвата?
Из :h E65рисунка видно, что Vim не позволяет использовать более 9 групп захвата в команде замещения. Например, будет работать следующая команда: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1 Но этот с еще одной группой захвата потерпит неудачу: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1 Мой вопрос не о том, почему он терпит неудачу (это жесткое ограничение Vim), а о том, почему Vim …

1
Совместимы ли магические выражения Vim с известными классами регулярных выражений?
Синтаксисы регулярных выражений многих инструментов Unix часто представляют собой POSIX-кодированные базовые и расширенные регулярные выражения (BRE и ERE, соответственно) и, в некоторых современных реализациях, в стиле Perl (PCRE является реализацией этого). Существует ли однозначное соответствие между уровнями магии Вима и такими внешне определенными, но хорошо известными классами? Похоже, \mэто BRE …

2
Как запустить: заменить только часть строки, а не всю?
У меня есть такая строка: function my_function(argument, another argument, but there are spaces) Я хочу заменить символы пробела (внутри имен аргумента) подчеркиванием. Таким образом, я хотел бы использовать: :s/\ /_/g но как я могу выбрать не применять его ко всей строке, а начинать, скажем, с позиции курсора? (Или третье слово)?

2
Регулярное выражение в Vi: Как использовать классы символов внутри групп? (например, [\ s \ w])
В Vim класс символов \sсоответствует любому пробелу. Когда я использую эти специальные символы в группах, например, [\s\w]он не соответствует ни одному пробелу или символу слова, он соответствует sили w. Как использовать классы персонажей внутри групп?

1
Есть ли способ конвертировать литерал регулярного выражения Vim в различные магические режимы?
Если у меня есть магическое регулярное выражение Vim в строковом литерале, есть ли способ преобразовать все регулярное выражение в альтернативное представление, использующее другой магический режим, чтобы я мог вставить это эквивалентное регулярное выражение в исходный код? Например, если я хочу преобразовать этот шаблон магического режима: '\m-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>' в очень магический режим, …

4
В чем смысл \ r и \ n, означающих разные вещи в команде s?
Мы все знаем, что при поиске \nэто перевод строки и \rвозврат каретки ( ^M), но при замене \rэто перевод строки, тогда \nкак null byte ( ^@). Каково происхождение этой асимметрии? Учитывая, что это поведение ... по меньшей мере своеобразно (и весьма контрпродуктивно, когда вы ошибаетесь в первый раз), я ожидаю, …


1
Удаление диапазона из n строк до и после совпавшей строки?
У меня есть повторяющийся файл конфигурации, и я хотел бы сопоставить регулярное выражение и удалить диапазон строк до и после совпадения. Я также хотел бы удалить совпадение в одной команде. Я могу использовать... :g/match/-1d ... несколько раз, чтобы удалить более одной строки перед матчем ... ... и объединить это с …

2
Игнорировать URL-адреса и адреса электронной почты в файле заклинания
Есть ли способ, чтобы vim не отмечал URL-адреса HTTP и адреса электронной почты как орфографические ошибки? Или, в более общем смысле, способ перечислить регулярные выражения правильных написаний?

3
В чем разница между атомами '\ zs' и '\ @ <=' в регулярном выражении Vim?
Вот что я получаю из документации: \zs«запускает выделенную часть» после сопоставления с предыдущим регулярным выражением и \@&lt;=«запускает выделенную часть» после сопоставления с предыдущим атомом . Но я не совсем понимаю тонкости этого, так кто-нибудь может объяснить, как они отличаются немного глубже? Это то, что заставило меня любопытно: если я бегу …

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