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

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

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

2
Чи можливий пошук в системі регулярних виразів vim?
Я стикався з багатьма ситуаціями в vim, коли було б корисно мати орієнтовні заяви. Я спробував з допомогою стандартного синтаксису lookaround ( (?=), і (?!)так далі ..) , але це , здається ВІМ не підтримує це. Чи має 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 не знайдено. …

5
Шаблон синтаксису Vim для виділення аргументу ключового слова python
Я борюся з навчанням vim regexps (я теж не знаю жодного іншого regexp), тому головна проблема полягає у визначенні regexp, який би відповідав some_function_call(simple_value, keyword=value) ключового слова в цьому прикладі. Тож воно має відповідати слову, якщо воно знаходиться всередині паронів і має рівний знак після нього. Наступна проблема - як …

1
Чому Vge 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це …

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

2
Regex у 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є нульовим байтом ( ^@). Яке походження цієї асиметрії? Зважаючи на те, що така поведінка є найменш властивою (і досить контрпродуктивною, коли ви помиляєтесь вперше), я думаю, що є …


3
Яка різниця між атомами '\ zs' та '\ @ <=' у регулярному виразі Vim?
Це те, що я отримую з документації: \zs"запускає виділену частину" після відповідності попередньому регексу та \@&lt;="запускає виділену частину" після відповідності попередньому атому . Але я точно не розумію тонкощів цього, тому хтось може пояснити, чим вони відрізняються трохи більше за глибиною? Це мене викликало цікавість: якщо я біжу /\_s\zsnnoremap тобто …

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.