Трудно дать вам регулярное выражение, так как я не знаю правил; например:
- вам нужно выбрать только звезды или смайлики "торт", "дерево" и еще что-нибудь?
- всегда ли строка заканчивается текстом ascii между
[]
?
Я могу дать вам "большое" регулярное выражение, но могут быть побочные эффекты, с большим количеством деталей мы можем сделать лучшее регулярное выражение
^\[(.+)\] (.*?) \[([\w\-]+)\]$
https://regex101.com/r/eU7vis/1
^\[(.+)\]
Получает и обеспечивает первую часть (смайлик простой или множественный или любой символ между []
). Мы можем ограничить количество авторизованных символов, если у вас есть ограничения.
(.*?)
Получает минимум символов (любой символ), если мы не сопоставляем следующую часть
\[[\w\-]+\]$
Получает и обеспечивает завершение строки текстом между []
. Авторизованными символами в этой части являются буквы алфавита (нижний и верхний), цифры, подчеркивание и дефис.