Запитання з тегом «regular-expression»

Регулярні вирази (часто скорочуються до "регулярного вираження") - це вирази, написані декларативною мовою, використовувані для узгодження шаблонів у межах рядків.

1
Сортувати за словами, розділеними комами
Звичайна команда: сортування може сортувати рядки на основі стовпця або віртуального стовпця ( \%cабо \%v), чи може логічний стовпчик вищого рівня використовуватись як ключ сортування? Використання регулярного вираження виглядає трохи складним для цього сценарію (стовпець знаходиться в кінці рядка?), І він схожий на те, що робить утиліта сортування ( sork …

6
Видалити n рядків пропустити сценарій 1 рядка
Я хочу створити базовий скрипт Vim, який просто видаляє n рядків, пропускає 1 рядок і повторюється до кінця документа. Мене не цікавлять конкретні матчі, я просто хочу видалити рядок. Наприклад; Тому я хочу повторити команду 3ddjдля всього документа. Text I want to keep. Text I want to delete. Text I …

1
Що таке ім'я лексеми '\%' та '\ @' у vim regex? І що це робить?
Під час редагування синтаксичного файлу я виявив щось на зразок: \s*\%(\%(:\@<!\/\/.*\)\=\|\%(\/\*.*\*\/\s*\)*\)$ Я знайомий з будь-яким іншим, ніж там \%і \@там. Я навіть не можу гугла, бо не знаю, як це звуть. Отже, що це таке і що робить?

3
Альтернатива уникнути косої риски в пошуку та заміні довгих рядків
Чи є альтернатива у пошуку та заміні рядків vim, ніж уникнути кожного спеціального символу в рядку. Наприклад, якщо я хочу відповідати наступному рядку і замінити чимось [ERROR] Login unsucessful Тоді я повинен робити :%s/\[ERROR\]\ Login\ unsucessful/something/g І стає складніше і болючіше для складних рядків, що містять безліч спеціальних символів Я …

1
Застосувати команду звичайного режиму до регулярних збігів
Я використовую наступний регулярний вираз для відповідності рядку документації під визначенням функції Clojure: \vdefn.*\n\s*\zs"([^"]|\n)*" Чи є спосіб запустити команду звичайного режиму gq(рядки формату) для всіх збігів цього шаблону у заданому файлі?

2
Дублікати рядків, що починаються з "x", замінюючи "x" у дублікаті на "y"?
У мене є файл із такою схемою: foo 111 baz foo 222 baz foo 333 baz в яку потрібно перетворити foo 111 bar 111 baz foo 222 bar 222 baz foo 333 bar 333 baz Отже, дублюйте всі рядки, що починаються з foo, і змінюйте лише fooв дублікаті, але залиште …

2
Заміна регулярного виразу змішаного випадку, у Vim
Я часто стикаюся з ситуацією, коли в мене є файл із великою кількістю змішаних справ. Наприклад, CamelCase and camelCase Я шукаю заміни регулярних виразів Vim для створення, AnotherCase and anotherCase Зараз я роблю це в два етапи після візуального вибору ліній, :s/CamelCase/AnotherCase/g :s/camelCase/anotherCase/g Чи це можливо за один крок заміни, …

5
Як замінити вміст між двома шаблонами з файлу?
У мене такий формат файлу: <common> fitnes=0 genetic=1 method=0 </common> <inputs> foo=bar bar=foo </inputs> <limits> balance=200.00 </limits> і я хотів би видалити все, що знаходиться між <inputs>і </inputs>(за винятком шаблону самостійно) та замінити його вмістом з іншого файлу (наприклад foo.txt). Іншими словами, рядки з foo=barта bar=fooбудуть замінені іншим змістом. Можливо, …

2
Як зіставити слово, що закінчується великою літерою та конкретною літерою?
У мене є слова, як lblSERINOdу реченнях. Слова розділені пробілом. Я хочу замінити dв кінці всіх таких слів слова u. Так наприклад lblSERINOdбуде виглядати lblSERINOu. Я спробував, s/.*\ud /u /gале Вім каже, що його не можна знайти .*\ud. У чому тут проблема?

1
Regex, який віддає перевагу більш короткі матчі в рамках матчу? (Це більше, ніж не жадібне)
Я намагаюся створити сценарій для нечіткого пошуку всередині буфера. Основна ідея - взяти деякий вклад і вставити .\{-}між кожною парою символів, наприклад, fooстає f.\{-}o.\{-}o. Це працює досить добре, але приходить багато неідеальних матчів. Я думаю, що нечіткий пошук повинен спочатку дати найкоротші відповідники. Розглянемо наступний приклад: public void put() Якщо …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.