Substituir, (vírgula) entre parênteses no Notepad ++

0

Eu quero substituir todas as instâncias de , (vírgula) em uma string como:

word, synonym, synonym (definition 1, definition2)

Eu não quero tocar em nada antes do primeiro ( e não quero alterar nenhum texto entre parênteses - tudo o que preciso é substituir todas as ocorrências da vírgula pelo ponto-e-vírgula INSIDE dos parênteses, para obter algo como :

word, synonym, synonym (definition 1; definition2)

Eu tentei com \(.*[\, ].*\) capturar tudo o que está entre parênteses, mas não sei como definir o Notepad ++ para substituir apenas a vírgula e nada mais.

    
por Michal 22.12.2015 / 09:20

1 resposta

3

Então você quer substituir, entre parênteses, por um ponto-e-vírgula?

Tente isto:

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

Eu poderia ter tornado isso um pouco mais preciso e, em vez disso:

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

No modo REGEX, é claro.

Espero que isso ajude.

    
por 22.12.2015 / 09:45

Tags