Vim найти и заменить все вхождения строки регулярного выражения - PullRequest
1 голос
/ 25 сентября 2019

У меня есть файл с несколькими тысячами строк, и в этом файле у меня есть некоторые выражения регулярных выражений ...

Выражения регулярных выражений повсюду, и недавно мы изменили выражение, и яМне нужно обновить все из них.

Мне нужно изменить все экземпляры: [A-z -']+ на [A-z \-']+

, поэтому я попытался сделать :%s/[A-z -']+/[A-z \-']+/g, но это заменило все вхождения [A-z -']+с [A-z -'[A-z -']+

Есть ли другой способ сделать это?

1 Ответ

3 голосов
/ 25 сентября 2019

Вы можете использовать эту замену:

%s/\[A-z -']/[a-zA-Z '-]/g

Неправильно использовать [A-z], так как оно будет соответствовать гораздо большему числу символов, чем просто [A-Za-z], и перед закрытием лучше переносить дефис в конечную позицию], чтобы получить правильное выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...