Pergunta

Eu tenho o seguinte Regex:

.*?,

E aqui estão alguns dos dados com os quais estou trabalhando:

"bagel-mssql-iscsi.private.hostname.ca","3636634643","8.8.8.8"
"cecs-admin.prt.hostname.ca","3636634643","8.8.8.8"
"cecs-admin2.prt.hostname.ca","3636634643","8.8.8.8"

Os dados acima foram censurados dos dados originais.

Eu quero combinar:

"bagel-mssql-iscsi.private.hostname.ca",
"cecs-admin.prt.hostname.ca",
"cecs-admin2.prt.hostname.ca",

O problema é que meu regex também corresponde ao valor numérico após os nomes de host.O que posso fazer para que apenas a primeira ocorrência de cada linha seja correspondida?Ou um método alternativo que funcionasse com esse tipo de dados também funcionaria.

Foi útil?

Solução

Seu regex seria,

^".*?",

DEMONSTRAÇÃO

Explicação:

  • ^ Afirma que estamos no início.
  • " Aspas duplas literais.
  • .*? Correspondência relutante de qualquer caractere zero ou mais vezes.
  • ", Literal " seguido por uma vírgula.

Outras dicas

Você precisa ancorar no início da linha:

^.*?,

Usar ^ âncora que corresponde apenas ao início da linha:

^.*?,

enter image description here

O filtro Regex abaixo pode ajudar:

^\"(\S*?)\",

http://regex101.com/r/dZ3gH8/1

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top