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

182
Vistas
Regular Expression (Regex) not working for all samples of geographical coordinates (decimal format)

I have created a regular expression to extract geographical coordinates (decimal format) data from a specific pattern of strings.
Regex: /(?<lat>\-?\d+\.\d+)(?<comma>\,)(?<long>\-?\d+\.\d+)/gm

sample of strings that are working: 11.18531,88.78292,8.34329,123.48655, 21.11912,145.85430, 36.29781,-13.06121, -16.35564,-36.07065, 31.86691,122.28366, 38.84814,-140.10204, 18.58158,59.20813

Here I want to extract the latitude and longitude values with their - signs.

But there are some patterns of string which I want to reject completely: -76.84933,-141.64907hel, no-16.3993,-11.2359, -77.7678er,161.9786, 69.8149,-l61.9041, 5.9333,10.1rr667, jkl11.18531,88.78292hh

But few of the above strings are passing the regex.test() as true: -76.84933,-141.64907hel, no-16.3993,-11.2359, 5.9333,10.1rr667, jkl11.18531,88.78292hh. For these types of strings, I want to return false. No match should be found for these strings like these. These are very much contaminated and don't want to work on them further.

Visit https://regex101.com/r/rT6YvD/1 to see the regex playground I am using.

This is what I am not able to achieve. Please help!!!

Any suggestion accepted gratefully. Thanks in advance.

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

0

You can use

(?<lat>-?\b(?<!\b-)\d+\.\d+)(?<comma>,)(?<long>-?\d+\.\d+)\b

See the regex demo. Details:

  • (?<lat>-?\b(?<!\b-)\d+\.\d+) - Group "lat": an optional -, a word boundary that is not immediately preceded with a - that has a word char in front of it, and then one or more digits, . and one or more digits
  • (?<comma>,) - Group "comma": a comma
  • (?<long>-?\d+\.\d+) - Group "long": an optional -, one or more digits, . and one or more digits
  • \b - a word boundary

If you need to make sure the string only contains the cooordinates, you can remove all whitespaces and then check if the whole string matches your coordinates pattern:

const match = text
    .replace(/\s+/g, '')
    .match(/^(?<lat>-?\d+\.\d+)(?<comma>,)(?<long>-?\d+\.\d+)$/);

Here, ^ matches the start of string, and $ matches the end of string.

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