Estou tentando pegar a última parte após a última barra invertida
, preciso do \Web_ERP_Assistant
(com \
)
Minha ideia era:
C:\Projects\Ensure_Solution\Assistance\App_WebReferences\Web_ERP_WebService\Web_ERP_Assistant
\\.+?(?!\\) // I know there is something with negative look -ahead `(?!\\)`
Mas não consigo encontrar.
Respostas:
Sua solução de lookahead negativo seria, por exemplo:
Veja aqui no Regexr
fonte
(?:
é o início de um grupo sem captura. O.
é qualquer caractere, isso verifica qualquer caractere se não for seguido por um ``.$
. Padrão é o fim da string, com Multiline como o fim da linha. Como o texto de teste no Regexr tem várias linhas, preciso dessa opção aqui.(?:[^\\/](?!(\\|/)))+$
remove a barra no início e lida com barras anteriores e posteriores. Ele também corresponde a toda a string para pathes sem nenhuma barra,(?:(?!\\).)+
. ( ref ) Além disso, seu exemplo no RegExr usa duas barras invertidas para separar os componentes do caminho; deve haver apenas um e o regex deve corresponder a apenas um. ( demonstração )Um que funcionou para mim foi:
Experimente online!
Explicação:
fonte
Uma análise negativa à frente é uma resposta correta, mas pode ser escrita de forma mais clara como:
Isto procura por uma ocorrência de \ e então em uma verificação que não é correspondida, procura por qualquer número de caracteres seguidos pelo caractere que você não deseja ver depois dele. Por ser negativo, só corresponde se não encontrar uma correspondência.
fonte
Você pode tentar ancorá-lo no final da corda, algo assim
\\[^\\]*$
. Embora eu não tenha certeza se é absolutamente necessário usar regexp para a tarefa.fonte
([^\/]*)$
corresponde ao nome do arquivo em um caminho para uma caixa Linux. Você pode explicar como o cursor^
funciona neste contexto? Eu só usei isso para significar o início das cordas.[^\/]
corresponde a qualquer caractere, exceto para/
.E sobre este regex:
\\[^\\]+$
fonte
Se você não quiser incluir a barra invertida, mas apenas o texto depois dela, tente o seguinte:
([^\\]+)$
ou para unix:([^\/]+)$
fonte
Usei o regex abaixo para obter esse resultado também quando foi concluído por um
\
[Regex Demo]
fonte