Os colchetes são um token especial em expressões regulares ( [a-z]
significa qualquer caractere no intervalo a
to z
), então você teria que escapar deles.
Sua expressão de pesquisa se tornaria \[\d+\]
(com \d+
significando um ou mais dígitos). No entanto, você quer substituir isso apenas pelos dígitos. Você precisa configurar um grupo de captura usando parênteses e referenciá-lo na expressão de substituição. Suas configurações se tornam:
- Pesquisar por:
\[(\d+)\]
- Substituir por:
Quanto ao seu segundo problema, não tenho certeza se entendi corretamente com o contexto que você fornece ... se apenas os nomes estiverem entre parênteses, você poderá substituir apenas \([^\)]+\)
por <annot>
ou talvez \(Mr\. [^\)]+\)
</annot>Mr.
se os nomes forem precedidos por \(
.
Para entrar em detalhes, o modo como funciona é assim:
- os parênteses que você procura precisam ser escapados (como normalmente são usados para definir grupos de captura, portanto você usa
\)
e[^...]+
-
...
significa um ou mais caracteres que não são\(whatever name\)
- sua expressão de pesquisa é, portanto, um parêntese de abertura, seguido por qualquer caractere que não seja um parêntese de fechamento (portanto, deve corresponder aos nomes), seguido por um parêntese de fechamento.
- %code% representa toda a expressão pesquisada na área de substituição
Se você tem uma lista desses nomes para substituir, é melhor usar %code% como expressão de pesquisa e, se não, é impossível, pois você não pode fazer um sufixo "regexp" o que é um nome e o que não é.