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

143
Vistas
RegExp evita el doble espacio y el espacio antes de los caracteres

Estoy tratando de escribir una expresión regular para no permitir espacios dobles en ninguna parte de una cadena, y también forzar un solo espacio antes de un MO o GO obligatorio, sin espacio permitido al principio y al final de la cadena.

Ejemplo 1 : It is 40 GO a la derecha

Ejemplo 2 : It is 40GO incorrecto

Ejemplo 3 : It is 40 GO mal

Esto es lo que he hecho hasta ahora ^[^ ][a-zA-Z0-9 ,()]*[^;'][^ ]$ , que evita los espacios al principio y al final, y también el " ;" personaje. Este funciona a las mil maravillas.

Mi problema es no permitir espacios dobles en ninguna parte de la cadena, y también forzar espacios justo antes de los caracteres MO o GO .

Después de algunas horas de investigación, probé estos (a partir del RegExp anterior que escribí):

Para evitar los espacios dobles: ^[^ ][a-zA-Z0-9 ,()]*((?!.* {2}).+)[^;'][^ ]$

Para forzar un solo espacio antes de MO : ^[^ ][a-zA-Z0-9 ,()]*(?=\sMO)*[^;'][^ ]$

Pero ninguno de los dos últimos funciona realmente. agradeceria a quien me ayude a resolver esto

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

0

La búsqueda anticipada (?!.* {2} se puede omitir y, en su lugar, comenzar la coincidencia con un carácter que no sea un espacio en blanco y finalizar la coincidencia con un carácter que no sea un espacio en blanco y usar un solo espacio en un grupo repetido opcionalmente.

Si la cadena no puede contener un ' o ; entonces usar [^;'][^ ]$ significa que el penúltimo carácter no debe ser ninguno de esos caracteres.

Pero puede omitir esa parte, ya que la clase de carácter [a-zA-Z0-9,()] no coincide ; y '

Tenga en cuenta que el uso de una clase de caracteres como [^ ] y [^;'] en realidad espera un solo carácter, lo que hace que el patrón que intentó tenga una longitud mínima.

En su lugar, puede descartar la presencia de GO o MO precedidos por un carácter que no sea un espacio en blanco.

 ^(?!.*\S[MG]O\b)[a-zA-Z0-9,()]+(?: [a-zA-Z0-9,()]+)*$

El patrón coincide:

  • ^ Comienzo de cadena
  • (?!.*\S[MG]O\b) Anticipación negativa, afirmar no un carácter que no sea un espacio en blanco seguido de MO o GO a la derecha. El límite de palabras \b evita una coincidencia parcial de palabras
  • [a-zA-Z0-9,()]+ Comience la coincidencia con 1+ ocurrencias de cualquiera de los caracteres enumerados (Tenga en cuenta que no hay espacio en él)
  • (?: [a-zA-Z0-9,()]+)* Opcionalmente repite la misma clase de carácter con un espacio inicial
  • $ Fin de la cadena

Demostración 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