Строки соответствия внутри скобок при поиске в коде Visual Studio

user1991185 спросил: 31 июля 2018 в 09:29 в: regex

Я использую регулярное выражение \((?!\s)([^()]+)(?<!\s)\) для соответствия (string), но не ( string ) и () при поиске в Sublime Text.

Поскольку VS Code не поддерживает обратные ссылки в регулярных выражениях, мне было интересно, как изменить исходное регулярное выражение, чтобы получить тот же результат в этом редакторе.

Любые идеи?


1 ответ

Есть решение
Wiktor Stribiżew ответил: 31 июля 2018 в 09:32

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

\(([^()\s](?:[^()]*[^()\s])?)\)

Посмотреть демонстрацию regex

Подробности

  • - \( char
  • ( - группа 1:
    • ([^()\s](?:[^()]*[^()\s])?) - char кроме [^()\s], ( и пробела
    • ) - необязательная последовательность (чтобы также соответствовать строкам, таким как (?:[^()]*[^()\s])?, с 1 символом в скобках) из
      • (a) - 0+ символов, отличных от [^()]* и (
      • ) - символ, отличный от [^()\s], ( и пробела
  • ) - символ \).