Notepad++ Tentando adicionar um caractere após SOMENTE o primeiro espaço em cada linha

Notepad++ Tentando adicionar um caractere após SOMENTE o primeiro espaço em cada linha

Tenho 30.000 linhas de texto com um número aleatório de espaços. Preciso adicionar um caractere apenas ao primeiro ESPAÇO de cada linha. Qualquer pessoa que possa sugerir qualquer coisa seria muito apreciada.

Responder1

  • Ctrl+H
  • Encontre o que:^\S+\h\K
  • Substituir com:%
  • confira Envolver
  • verifique expressão regular
  • Replace all

Explicação:

^           # beginning of line
  \S+       # 1 or more non space
  \h        # 1 horizontal space
  \K        # forget all we've seen until this position

Substituição:

%           # the character to insert

Dado:

I have 30,000 lines of text that have randon 
number of spaces in them. I need to add a character 
to just the first SPACE in each line. 
Any who can suggest anything would be 
greatly appreciated.

Resultado para determinado exemplo:

I %have 30,000 lines of text that have randon 
number %of spaces in them. I need to add a character 
to %just the first SPACE in each line. 
Any %who can suggest anything would be 
greatly %appreciated.

insira a descrição da imagem aqui

Responder2

Experimente o TextPad. Você pode gravar macros e reproduzi-las. Portanto, registre o que deseja fazer na primeira linha e depois de completar a primeira linha, deixe o cursor no início da próxima linha. Depois é só reproduzir a macro até o final do arquivo. Ou apenas mantenha pressionada a tecla play macro.

https://www.textpad.com/

Responder3

O que você está procurando são expressões regulares. A primeira coisa que você vai querer fazer é transformar sua pesquisa em expressões regulares

insira a descrição da imagem aqui

Alegria porque acho que sei exatamente como resolver isso

https://regex101.com/r/aW4gG2/1

A expressão que você deseja é:
Localizar: (^.*?)( )
Substituir:\1#\2

A forma como isso funciona é a seguinte em expressões regulares, o ()meio "captura". Isso significa que ele encontrará esse grupo altamente específico e então você poderá consultá-lo na substituição por \1 ou \2 ou \3. O número começa em 1 e você conta a partir do parêntese aberto

^significa começar do início da linha. (Porque você quer que seu encarte cubra o PRIMEIRO espaço é isso que procuraremos começando pela frente encontre o primeiro espaço)

.*?esta parte encontra a primeira palavra na frente do espaço. Ele faz isso criando em um grupo qualquer caractere ( .) tantos quanto possível ( *) mas o menor número necessário ?. Sem o ponto de interrogação você apenas capturará todos os caracteres (incluindo todos os espaços)

( )esta parte significa que nosso segundo grupo é o espaço após o primeiro. Este deve ser o primeiro espaço. É nisso que queremos inserir nosso personagem.

A substituição

\1#\2

\1refere-se ao primeiro conjunto de caracteres. E *na expressão significa que o conjunto de caracteres pode ser uma palavra de qualquer comprimento, incluindo 0.

#é o caractere de inserção

\2\é claro o espaço.

O resultado é colocar um #na frente de cada primeiro espaço. Se você quiser DEPOIS do primeiro espaço é tão simples quanto ajustar a substituição

\1\2#colocará #depois de cada primeiro espaço por linha.


Este é o poder das expressões regulares. Uma simples localização e substituição pode fazer a inserção com mais precisão do que qualquer macro. É flexível, é rápido e na maioria das vezes não é tão difícil.

Aqui está um ótimo tutorial inicial que deve explicar o que é RegEx e por que ele é útil. [RegExOne]. REO é quem me fez entender

Este é um tutorial que muitas pessoas recomendam e que, honestamente, não consegui entender muito. [RegEx.Info]

Na verdade, nunca voltei ao RegEx.info, pulei direto paraDocumentação do Notepad++o que foi realmente muito útil neste momento. Isso e é claro que você pode testar com [RegEx101]. A única coisa que você deseja fazer é adicionar /gmna expressão. Depois, basta colar um trecho no TestString e praticar até acertar.

insira a descrição da imagem aqui

Responder4

Existe uma solução muito simples para isso.

Lembrei que já existe algo no Notepad++.

  • Abra sua janela Substituir
  • Coloque "^" no campo Procurar seguido de um espaço ou o que quiser encontrar
    Isto irásó procurar por qualquer coisa no início da sua linha
  • Coloque o que você precisa no campo Substituir por
  • Defina o modo de pesquisa como "Expressão regular"
  • Clique em Substituir tudo
  • Feito

Para maiores informações

informação relacionada