.png)
Eu tenho este cenário:
data-cycle-center-horz=true other words
data-cycle-caption=".custom-captions" other words
data-cycle-caption-template="{{slideNum}} other words
before words .data-cycle-caption-template="{{slideNum}} other words
.data-cycle-caption-template="{{slideNum}} other words
Então preciso encontrar todas as palavras separadas por sinais- = . "{
Fiz uma regex para o NOTEPAD++ para pesquisar e deletar aquelas palavras que possuem sinais antes e depois (a string inteira) sem as outras palavras, mas não muito bom:
PROCURAR: (?!\w+[-."={])
SUBSTITUIR: (deixe em branco)
O resultado esperado deve ser:
other words
other words
other words
before words other words
other words
Responder1
- Ctrl+H
- Encontre o que:
(?:^|[+=."{}-]+)(?:\w+[+=."{}-]+)+\h*
- Substituir com:
LEAVE EMPTY
- confira Envolver
- verifique expressão regular
- Replace all
Explicação:
(?: # start non capture group
^ # beginning of line
| # OR
[+=."{}-]+ # 1 or more + = . " { } -
) # end group
(?: # start non capture group
\w+ # 1 or more word character
[+=."{}-]+ # 1 or more + = . " { } -
)+ # end group, may appear 1 or more times
\h* # 0 or more horizontal spaces
Captura de tela:
Responder2
Isso está escrito em Python. Ele carrega seus dados de teste de um arquivo "data.txt" no mesmo diretório
import os, re
path = "./data.txt"
if os.path.isfile(path): #use local leader file
oFile = open(path)
strFile = oFile.read() #get old leaders
oFile.close()
else:
print("File Not Found")
def replace(line):
for i in line:
if ( i == '-' or i == '=' or i == '.' or i == '"' or i == '{' or i == '}'):
line = line.replace(i,"\n")#Delete \n and replace it with xyz to see
return line
lines = strFile.split("\n")
for line in lines:
answer = replace(line)
print(answer)
centro de ciclo de dados horz legenda do ciclo de dados verdadeiro legendas personalizadas modelo de legenda do ciclo de dados slideNum
Responder3
O que estou lendo na sua pergunta é que você deseja basicamente combinar todas as palavras, mas não os caracteres especiais de separação, certo?
[^-=."{}\r\n]+
deve fazer o truque. Ele corresponderá a tudo que não seja seus caracteres especiais - = . "{
ou uma quebra de linha.
Você pode construir e testar regex com uma ferramenta online comoregex101
Atualizar
O regex a seguir remove as palavras conforme você descreveu, bem como os espaços em branco à direita:([^\s]+[-=."{}\r\n][^\s]+\s*)+
Eu testei com sucesso no seu exemplo:
Antes:
data-cycle-center-horz=true other words
data-cycle-caption=".custom-captions" other words
data-cycle-caption-template="{{slideNum}} other words
before words .data-cycle-caption-template="{{slideNum}} other words
.data-cycle-caption-template="{{slideNum}} other words
Depois:
other words
other words
other words
before words other words
other words