Бля, вопрос вообще не в оптимизации конкретного решения. Вы новичкам, которые пока сами ни хрена не понимают, зачем-то пихаете мантру "в любой ситуации ебашь регулярки", которые хуже поддерживаются в сложных случаях, а главное просто не нужны в тривиальных. Избегать регулярок - хорошо в простых случаях, код от этого в читаемости выигрывает.
Не, ну есть метод match() и в мелком проекте его же логично использовать. А так человек лезет в АПИ, там всё ок в доке, а потом говорят, что это костыли, сложно, нужно все писать вручную - странно.
Или делать Utils как в книжках с красивыми loop внутри и таскать библиотечку за собой в каждый учебный набросок. Тоже неудобно как то смотрится.
Ладно еще учебный пример бы был на бенч ренулярки внутри match по сравнению с циклом, тогда однозначно и то и то писать.
ИМХО проще простейшие случаи регулярок рюосвоить и то, что им не стоит доверять на нагрузке.