У меня есть это регулярное выражение шаблон, который я сделал сам (я нуб, хотя и сделал это через следующие учебные пособия):Regex Дополнительный матч
^([a-z0-9\p{Greek}].*)\s(Ε[0-9\p{Greek}]+|Θ)\s[\(]([a-z1-9\p{Greek}]+.*)[\)]\s-\s([a-z0-9\p{Greek}]+$)
И я пытаюсь соответствовать следующие предложения:
PROGRAMMATISTIKES реализовать ИНТЕРНЕТ E2 (E.V.D.) - DIMITRIOY
ПРОГРАММИРОВАНИЕ 1 Th (AMF) - MASTOROKOSTAS
ВВЕДЕНИЕ В КОМПЬЮТЕР I (AMF) - VOLOGIANNIDIS
И так далее.
Этот шаблон разбивает строку на 4 части.
Например, для строки:
PROGRAMMATISTIKES реализации ИНТЕРНЕТ E2 (E.V.D.) - ДИМИТРИУ
Первый матч: PROGRAMMATISTIKES реализовать INTERNET (Имя субъекта)
Второй матч: E2 (класс)
Третий матч: EB (Номер)
И матч вперед является: ДИМИТРИУ (Учитель)
Сейчас в некоторых записях
E*/Θ
не определен, и я хочу, чтобы получить 3 матча без
E*/Θ
. Как изменить шаблон, чтобы
(Ε[0-9\p{Greek}]+|Θ)
был необязательным совпадением?
Я попытался ?
до сих пор, а потому, что в моих предыдущих матчах я определяю \s
и \s
требует 2 пробельных, чтобы получить 3 матча и у меня есть только один в моей строке.
Что не так с установкой '?' В '' (Ε [0-9 \ p {Greek}] + | Θ) 'group? Можете ли вы привести пример и объяснить, что ожидается? Посмотрите [это обновленное регулярное выражение] (https://regex101.com/r/rL6yA9/2). –
по той же логике добавления токена '?' В вашу группу, добавьте '?' К вашим токенам '\ s', чтобы они были необязательными? –