Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

282
Visualizações
¿Cómo obtener "nombre de etiqueta", "nombre de atributo", "valor de atributo" en expresiones regulares?

Estoy tratando de escribir una expresión regular que debe devolver cada nombre de etiqueta, nombre de atributo y valor de atributo

Aquí está el ejemplo de código

 Hello, My name is Jack, This is my selfie: [img id='4' src="imageurl"] Below is the quick-link to my profile [profile username='jackisbest']

Necesito obtener cualquier texto encerrado entre [ ]

También necesito javascript regex para analizarlos y unirlos de esta manera

 > Match 1: img > Match 2: id='4' Group 1: id Group 2: 4 > Match 3: src="imageurl" Group 1: src Group 2: imageurl

Esta es la expresión regular que estoy usando, pero solo puede hacer coincidir los atributos y el valor

 (\S+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']

¡¡Gracias!!

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Modifiqué su expresión regular para capturar el nombre de la etiqueta y usé grupos de captura con nombre.

/\[?(?<tagName>\w+)\s?(?<attName>\S+)=['"]?(?<attValue>(?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']/gm

Esto podría funcionar para usted.

Prueba aquí: https://regex101.com/r/kT7pG4/1

over 4 years ago · Santiago Trujillo Relatório

0

Puedes usar

 /\[([a-zA-Z]\w*)|([^=\s]+)=["'](.*?)["']/g

Vea la demostración de expresiones regulares . Detalles :

  • \[([a-zA-Z]\w*) - un [ carácter y luego una letra seguida de cero o más caracteres de palabra (letras, dígitos, guiones bajos)
  • | o
  • ([^=\s]+) - uno o más caracteres que no sean = y espacio en blanco
  • = - a = carácter
  • ["'](.*?)["'] - " o ' , luego cero o más caracteres, la menor cantidad posible (capturados en el Grupo 3), y luego un " o ' carácter.
over 4 years ago · Santiago Trujillo Relatório

0

Si desea tener en cuenta la apertura [ y el cierre ] y se admite el cuantificador en el análisis posterior, puede usar:

 (?<=\[(\w+\b)[^\][\n]*)([^\s=]+)=['"]([^'"]*)['"](?=[^\][\n]*])
  • (?<= Mirada positiva hacia atrás para afirmar que lo que está a la izquierda es
    • \[ Partido [
    • (\w+\b) Capturar grupo 1 , hacer coincidir 1+ caracteres de palabra
    • [^\][\n]* Opcionalmente, haga coincidir cualquier carácter excepto [ ] o una nueva línea
  • ) Cerrar la mirada detrás
  • ([^\s=]+)=['"]([^'"]*)['"] Grupo de captura 2 y grupo 3 para la clave y el valor
  • (?=[^\][\n]*]) Afirmar un ] a la derecha

Demostración de expresiones regulares

El patrón tiene en el grupo 1 el valor del valor justo después de la apertura [ y el grupo 2 y el grupo 3 son los valores de los pares clave y valor:

 const regex = /(?<=\[(\w+\b)[^\][\n]*)([^\s=]+)=['"]([^'"]*)['"](?=[^\][\n]*])/g; const str = `Hello, My name is Jack, This is my selfie: [img id='4' src="imageurl"] Below is the quick-link to my profile [profile username='jackisbest' a='b']`; let m; console.log(Array.from(str.matchAll(regex), m => [m[1], m[2], m[3]]));

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda