Я ищу для анализа пользовательского текста разметки, такого как приведенные ниже примеры.Регулярное выражение для правильного сопоставления групп
1
Post:1
Image:1|thumb
Image:1|thumb|html classes here
1|thumb|html classes here
Общий формат: ModelName:ID|image_size|html classes
Все, кроме идентификатора после двоеточия (:) является необязательным. Обратите внимание, что идентификатор также может быть строкой. После последнего канала может быть несколько разделенных пробелом классов CSS. Это то, что я до сих пор:
^([\w\.]+)?(?::([-\w\d\.]+))(?:\|(\w+))?(?:\|([-\w\s\d]+))?$
Это регулярное выражение имеет несколько вопросов, которые я не могу понять, как исправить
- двоеточие появляются перед строкой, которая сливается в main, а не после. Другими словами, двоеточие требуется только в том случае, если присутствует группа 1. (Та же самая идея, как с трубой (|.) До группы 3 и 4.
- Регулярное выражение не соответствует 3 последних тестовых случаев в верхней
1
иPost:1
подобраны правильно
Спасибо, это определенно шаг в правильном направлении. Тем не менее, мне нужно захватить Image и Post в группе. – danielbker
Отредактировано согласно вашему комментарию :) – ClasG
Я отредактировал ваше исходное регулярное выражение и пришел к тому же ответу !! Спасибо за вашу помощь. Вы эксперт по регулярному выражению! – danielbker