Eu tenho várias linhas que se parecem
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
Em cada linha, gostaria de substituir o código de [
para {
pelo meu próprio código.
\node
está sempre no início de cada linha.{
énãono final da linha.
Já encontrei (aqui) e tentei coisas como ^\\node.*\{
or \\node.*\{
, mas ambos produzem o mesmo resultado insatisfatório: todo o código até o último {
do documento fica marcado.
Responder1
Na verdade, não há problema em ativar o Wrap around. Na verdade, eu sugiro que você faça isso.
Como é garantido que o fragmento esteja no início da linha, você pode usar uma ^
âncora circunflexa ( ).
O seguinte funciona para mim:
Encontrar: ^\\node\[[^{]*\{
; Substituir com:\\node[test{
As ^
âncoras para o início da linha. \\node\[
corresponde ao texto \node[
, após escapar para caracteres especiais. [^{]*
pega todos os caracteres, exceto uma chave aberta. (Observe que aqui {
não precisa ser escapado porque está em uma classe de personagem.) Em seguida, \{
pega a própria chave aberta.
Se ... Some code here ...
pode conter colchetes:
Encontrar: ^\\node\[.*\{([^{]*)$
; Substituir com:\\node[test{$1
A primeira parte é a mesma. Então, .*
combinará tantos caracteres quanto possível. \{
corresponde a uma chave de abertura e, em seguida, ([^{]*)$
corresponde e captura todos os caracteres até o final da linha. Como [^{]
é especificado, ele não corresponderá a nenhuma chave de abertura; portanto, o anterior \{
deve corresponder ao último {
da linha.
Responder2
Na caixa de diálogo Pesquisar/Substituir, usando Localizar:nó[.*{e substitua por:nó[teste{substitui com sucesso...Algum código aqui...comtesteem cada linha.
Você precisa especificar as seguintes opções:
- NÃO marque "Envolver"
- Marque "Expressão regular"
- NÃO marque ".corresponde à nova linha"