Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

288
Vistas
¿Cómo puedo usar expresiones regulares para encontrar el siguiente patrón?

Tengo una serie de cadenas como esta:

 ["Author Name, (p. 123). (2019). Company.", "Author Name, (p. 321). (2021). Company."]

¿Cómo puedo devolver los números de página que comienzan con y contienen el patrón (p. ?

Hasta ahora he probado /\(([^)\)]+)\)/ sin embargo, devuelve todo entre paréntesis. Solo quiero los números de página entre paréntesis.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes hacer coincidir la p. antes del grupo de captura y capturar los números. No es necesario escapar del paréntesis en la clase de caracteres, por lo que puede eliminar \) y dejar solo )

 \(p\.\s*([^)]+)\)

Vea una demostración de expresiones regulares .

 const regex = /\(p\.\s*([^)]+)\)/g; [ "Author Name, (p. 123). (2019). Company.", "Author Name, (p. 321). (2021). Company." ].forEach(s => { Array.from(s.matchAll(regex), m => console.log(m[1])) });

about 4 years ago · Juan Pablo Isaza Denunciar

0

Capturaría dígitos (¿necesita (ps) ?), No distingue entre mayúsculas y minúsculas (¿qué pasa con (P.12) ?):

 /\(p\.\s*(\d+)\)/ig

Código

 const regex = /\(p\.\s*(\d+)\)/gi const string = "Author Name, (p. 123). (2019). Company." console.log(string.match(regex).map(x => x.replace(/\D+/g, '')))

EXPLICACIÓN

 NODE EXPLANATION -------------------------------------------------------------------------------- \( '(' -------------------------------------------------------------------------------- p 'p' -------------------------------------------------------------------------------- \. '.' -------------------------------------------------------------------------------- \s* whitespace (\n, \r, \t, \f, and " ") (0 or more times (matching the most amount possible)) -------------------------------------------------------------------------------- ( group and capture to \1: -------------------------------------------------------------------------------- \d+ digits (0-9) (1 or more times (matching the most amount possible)) -------------------------------------------------------------------------------- ) end of \1 -------------------------------------------------------------------------------- \) ')'

Ver prueba de expresiones regulares .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda