Нужен совет по RegEx

Нужен совет по RegEx

Я ломаю голову над проблемой, но не могу найти правильное решение. Проблема: написать регулярное выражение, которое будет соответствовать всем вхождениям различных символов или слов в тексте. Порядок текста должен быть именно таким:

pl играть игрок

я пробовал

(pl|играть|игрок)

но по какой-то причине он выберет только pl во всех словах. Так кто-нибудь знает, почему так и возможно ли сделать это, используя только регулярное выражение?

Ссылка крегулярное выражение101

Любая помощь будет оценена по достоинству.

решение1

При поиске альтернатив начинайте с самого длинного слова и переходите к самому короткому, если они имеют/начинаются с общих символов. Так как plи playвсе playerначинаются с , то сопоставляется plтолько (как первая альтернатива). и не рассматриваются.plplayplayer

Ваше регулярное выражение должно быть: (player|play|pl).

В этом случае сначала проверяются/сравниваются слова player, затем с playтем, если playerслово не найдено, и, наконец, с тем, plесли два других слова не найдены.

решение2

Вам необходимо указать жадное соответствие, поэтому добавьте .*в конец вашего регулярного выражения, например: (pl|play|player).*

При использовании жадных совпадений следует соблюдать осторожность, поскольку в итоге можно сопоставить больше совпадений, чем хотелось бы.

Связанный контент