Necesita asesoramiento sobre RegEx

Necesita asesoramiento sobre RegEx

Me estoy golpeando la cabeza con un problema pero no logro encontrar una solución adecuada. El problema: escriba una expresión regular que coincida con todas las apariciones de caracteres o palabras diferentes en el texto. El orden del texto debería ser exactamente este:

por favor, juega al jugador

He intentado

(pl|jugar|jugador)

pero por alguna razón seleccionará solo pl en todas las palabras. Entonces, ¿alguien sabe por qué sucede eso? ¿Es posible hacerlo usando solo expresiones regulares?

Enlace aexpresión regular101

Cualquier ayuda será apreciada.

Respuesta1

Mientras busca alternativas, comience desde la palabra más larga hasta la más corta si tienen caracteres comunes. As y todos comienzan con pl, solo (como primera alternativa) coincide. y no son considerados.playplayerplplplayplayer

Tu expresión regular debería ser: (player|play|pl).

En este caso, las palabras se prueban/comparan playerprimero, luego con playsi playerno se encontraron y finalmente con plsi no se encontraron las otras dos palabras.

Respuesta2

Debes especificar una coincidencia codiciosa, así que agrégala .*al final de tu expresión regular, así: (pl|play|player).*

Tienes que tener cuidado al usar coincidencias codiciosas, ya que puedes terminar haciendo coincidir más de las que deseas.

información relacionada