Изменение парантез в квадратные скобки с регулярными выражениями - PullRequest
1 голос
/ 28 сентября 2019

В Visual Studio 2019 я пытаюсь заменить паразиты квадратными скобками

Например: fld (126) - fld [126]

Используя это регулярное выражение

fld [(] [0-9] * [)]

хорошо соответствует тому, что я ищу в коде.

Но \ 2 заменяет все, что находится между параграфами, на '\ 2' вместо того, чтобы выходитьчто существует там прежде.

Любая помощь будет оценена ...

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Ваш пример RegEx показывает, что вы хотите изменить только скобки для функции fld.

Использовать

Find:  fld\((\d*)\)
Replace:  fld[$1]

Если содержимое в скобках может быть больше, чем цифры, используйте

Find:  fld\(([^)]*)\)
Replace:  fld[$1]
0 голосов
/ 28 сентября 2019

Попробуйте выполнить поиск и замену в режиме регулярных выражений:

Find:    ([^(\s]+)\(([^)]+)\)(?!\S)
Replace: $1[$2]

Демонстрация

Вот описание шаблона регулярных выражений:

([^(\s]+)   match AND capture the leading 'fld' term, in $1
            this is given by all non '(' and whitespace characters
\(          match a literal (
([^)]+)     match AND capture the content inside parentheses, in $2
\)          match a literal )
(?!\S)      assert that what follows the closing ) is a boundary or whitespace
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...