Регулярное выражение для соответствия буквенному шаблону, за которым следует ноль или более символов, за которым следует другой буквальный шаблон - PullRequest
1 голос
/ 04 апреля 2019

Я обновляю файл, который вызывает методы, использующие этот стиль Foo( a ).Обратите внимание на лишние пробелы вокруг параметра a.Я хочу заменить этот стиль вызова более компактным - Foo(a).Как я могу найти все экземпляры первого стиля в моем файле и заменить каждый экземпляр вторым стилем?Мне нужно регулярное выражение, что-то вроде "соответствует литералу (, за которым следует ноль или более символов (включая, возможно, пробел), пока вы не наберете )"?

Я пробовал \( .* \), но этоне работаетЕсть предложения?

Я использую функцию поиска и замены в Visual Studio 2015.

1 Ответ

2 голосов
/ 04 апреля 2019

Вы можете использовать

\(\s+(.*?)\s+\)

и заменить на ($1).

Детали

  • \( - ( символ
  • \s+ - 1+ пробелов
  • (.*?) - Группа 1 ($1 в шаблоне замены относится к этому значению): любые 0+ символов, кроме символов разрыва строки, должны быть как можно меньше
  • \s+ - 1+ пробелов
  • \) - ) char.

См. Демоверсию regex и график Regulex :

enter image description here

Если между символами может быть любой символ, используйте [\s\S\r]*? вместо .*?.

...