У меня есть шаблон, который имеет группы. Эти группы являются необязательными.Шаблон с необязательными группами
Полная Возможная картина:
==A=B++C+D#E-F-F-F-F-F-F-F-F-F-F
Но также может выглядеть следующим образом
==A=B++C+D#E-F-F-F-F-F-F-F-F-F-F
==A.A++C.C+D.D-F
=B++C-F
++C+F-F-F
Это не представляется возможным получить Определитель в группе, такие как (группа А не «=» возможное).
Так я попробовал эти регулярные выражения:
(.*)?\=\=(.*)?\=(.*)?\+\+(.*)?\+(.*)?\#(.*)?\-(.*)
Проблема:
- Если группа отсутствует, не соответствует
- группы с '#' (E) содержит первую группу ' -»(F)
- 001,002
- PLC.003
- M01.001
- P1
- тест-KF2 -> неправильно, должен быть тест
- KF3 -> неправильно, должно быть KF2-KF3
Что моя вина ?
Я немного непонятно, на что именно вы нуждаясь, но я могу видеть, что из ваших четыре В примерах только один из них имеет три '=' в нем, и в вашем регулярном выражении есть три необязательных '=', поэтому только первый может совпадать. – Chris
Группа1 имеет префикс '==', а Group2 имеет префикс '=', оба необязательные ... почему они не являются необязательными? – Suplanus
Вы поместили знак вопроса после группы - это означает, что сама группа не является обязательной, а «=» - нет. – nXu