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

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

1
Сортировать на основе слов, разделенных запятыми
Обычная команда: sort может сортировать строки на основе столбца или виртуального столбца ( \%cили \%v), может ли логический столбец более высокого уровня использоваться в качестве ключа сортировки? Использование регулярного выражения выглядит немного сложнее для этого сценария (столбец находится в конце строки?) И похоже на то, что делает утилита сортировки ( …

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
Регекс, который предпочитает более короткие совпадения в матче? (Это более сложный, чем не жадный)
Я пытаюсь создать скрипт для выполнения нечеткого поиска внутри буфера. Основная идея состоит в том, чтобы взять некоторый ввод и вставить .\{-}между каждой парой символов, например, fooстановится f.\{-}o.\{-}o. Это работает довольно хорошо, но дает много неидеальных совпадений. Я думаю, что нечеткий поиск должен сначала дать самые короткие совпадения. Рассмотрим следующий …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.