Попытка регулярного выражения |Соответствие Emojis и Pattern - PullRequest
0 голосов
/ 24 января 2019

Так что я пытался сопоставить этот тип паттерна некоторое время. Я использую RegExr , чтобы проверить свои вещи, я закончил с этим:

(\[★+\] [A-Za-z0-9]\s?-?[A-Za-z0-9] ?\w+?\s?[A-Za-z0-9]\s?\w+ ?\[?[A-Za-z0-9]\w+\]?[A-Za-z0-9]\s?\w+ ?\[?[A-Za-z0-9]-?\w+\])

Этот почти не подходил почти всем, как видно здесь . Я все еще новичок в использовании RegEx, но я понял, что эксперты могут мне помочь.

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

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Трудно дать вам регулярное выражение, так как я не знаю правил; например:

  • вам нужно выбрать только звезды или смайлики "торт", "дерево" и еще что-нибудь?
  • всегда ли строка заканчивается текстом ascii между []?

Я могу дать вам "большое" регулярное выражение, но могут быть побочные эффекты, с большим количеством деталей мы можем сделать лучшее регулярное выражение

^\[(.+)\] (.*?) \[([\w\-]+)\]$

https://regex101.com/r/eU7vis/1

^\[(.+)\] Получает и обеспечивает первую часть (смайлик простой или множественный или любой символ между []). Мы можем ограничить количество авторизованных символов, если у вас есть ограничения.

(.*?) Получает минимум символов (любой символ), если мы не сопоставляем следующую часть

\[[\w\-]+\]$ Получает и обеспечивает завершение строки текстом между []. Авторизованными символами в этой части являются буквы алфавита (нижний и верхний), цифры, подчеркивание и дефис.

0 голосов
/ 24 января 2019

Попробуйте это: \[(★|?|?)+\](\s[❤\w-]+\s?)+\[[\w-]+\]

\[(★|?|?)+\] соответствует [★] [?] [?] как можно большему количеству звезд / деревьев / тортов

(\s[❤\w-]+\s?)+ соответствует пробелу, за которым следует ❤ или A-Za-z0-9_ или -, за которым следует потенциальный пробел (0 или 1), и все это столько раз, сколько возможно

\[[\w-]+\] совпадений [с последующим как можно большим числом A-Za-z0-9_ или - с последующим]] 1011 *

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...