Я хочу заменить все экземпляры , (запятая) в строке как:

word, synonym, synonym (definition 1, definition2)

Я не хочу касаться ничего, что было раньше ( и я не хочу изменять любой текст в скобках - все, что мне нужно, это заменить все вхождения запятой на точку с запятой ВНУТРИ скобок, чтобы получить что-то вроде:

word, synonym, synonym (definition 1; definition2)

Я пытался с \(.*[\, ].*\) чтобы захватить все, что в скобках, но я не знаю, как настроить Notepad++ вместо запятой и ничего больше.

1 ответ1

3

Итак, вы хотите заменить в скобках точку с запятой?

Попробуй это:

Find: \((.*)(,)(.*)\)
Explanation: \(     - Literally capture a left bracket
             (.*)   - Captures everything and groups it until...
             (,)    - Captures the comma and groups it
             (.*)   - Captures everything and groups it until...
             \)     - ... the literal right bracket.

Replace With: \($1;$3\)
Explanation:  We replace everything caught above, meaning we need to put in...
              \(    - The literal left bracket again
              $1    - The first group we captured before (everything before ,)
              ;     - Our replacement for the comma, a semi colon
              $3    - The third group we captured before (we skipped 2, the comma, and got everything after)
              \)    - Finally, our literal right bracket again

Я мог бы сделать это немного более точным и вместо этого сделать:

Find: \((.*)(?:,)(.*)\)
Explanation: (?:) means the group doesn't capture, so we now replace with:
Replace With: \($1;$2\)

В режиме REGEX, конечно.

Надеюсь это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .