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.play
player
pl
pl
play
player
Tu expresión regular debería ser: (player|play|pl)
.
En este caso, las palabras se prueban/comparan player
primero, luego con play
si player
no se encontraron y finalmente con pl
si 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.