• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

120
Vistas
Coincidir con varias subcadenas y concatenar

Dado que tengo

 KsKd2s4dAs =AhAd2s4dKs =AsAd2s4dKs 5s5d6s6d2c AsAd6s6d2c =AdQdKdJdTd =AhQhKhJhTh =AsQsKsJsTs

Quiero hacer coincidir todas las subcadenas que comienzan con '=' y concatenarlas con este signo.

La salida debe ser

 KsKd2s4dAs AhAd2s4dKs=AsAd2s4dKs 5s5d6s6d2c AsAd6s6d2c AdQdKdJdTd=AhQhKhJhTh=AsQsKsJsTs

Puedo capturar usando esta expresión regular (=.{10}\s?)+ pero no puedo encontrar una manera conveniente de hacer tal cadena.

over 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puedes usar

 preg_replace('~(?:\G(?!\A)\s+(?==)|(?<!\S)=)(\S+)~', '$1', $text)

Vea la demostración de expresiones regulares . Detalles :

  • (?:\G(?!\A)\s+(?==)|(?<!\S)=) - ya sea a = char al comienzo de la cadena o justo después de un espacio en blanco o al final de la coincidencia anterior y luego uno o más espacios en blanco seguidos de a = char
  • (\S+) - Grupo 1: uno o más caracteres sin espacios en blanco.

Otra forma es usar preg_replace_callback :

 $text = 'KsKd2s4dAs =AhAd2s4dKs =AsAd2s4dKs 5s5d6s6d2c AsAd6s6d2c =AdQdKdJdTd =AhQhKhJhTh =AsQsKsJsTs'; echo preg_replace_callback('~=(\S+(?:\s+=\S+)*)~', function($m) { return preg_replace('~\s+~', '', $m[1]); }, $text);

Vea la demostración de PHP y la demostración de expresiones regulares .

El =(\S+(?:\s+=\S+)*) coincide con un = y luego captura en el Grupo 1 uno o más espacios que no son espacios en blanco seguidos de cero o más repeticiones de uno o más espacios en blanco, = , y uno o más no espacios en blanco.

over 3 years ago · Santiago Trujillo 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda