Я пытаюсь реализовать регулярное выражение, которое принимает строку 3oranges
в качестве одной группы и не принимает более 1 соответствия для этой строки. Я также хочу дать строку 3oranges2apples4bananas
, и это должно дать 3 различные группы соответственно.
Я попытался создать регулярное выражение, которое получает совпадения так, как я хочу, но не дает только одну группу в качестве совпадения. Это дает 2 для каждого матча: 3oranges
дает oranges
и 3oranges
как совпадения.
Вот регулярное выражение, которое я написал. Я пишу это так, потому что я хочу ограничить порядок, в котором предоставляются данные, а также хочу убедиться, что я получу ограниченное количество цифр для последующей обработки.
^(\d{1,4}(orange)){0,1}(\d{1,4}(apple)){0,1}(\d{1,4}(banana)){0,1}$
Как я уже говорил ранее, я хочу получить только одну группу для желаемого матча.
INPUT:
3oranges2apples4bananas
OUTPUT: Matches found
3oranges
oranges
2apples
apples
4bananas
bananas
DESIRED OUTPUT:
3oranges
2apples
4bananas
Возможно ли то, что я прошу, и если да, то как мне этого добиться?
РЕДАКТИРОВАТЬ 1:
Я не осознавал важности последующего вопроса, который у меня был к этому вопросу, но я не буду терять время.
Я также хочу считать это oranges
, если текст o
, orange
или oranges
Примерно так:
^(\d{1,4}(oranges|orange|o)){0,1}(\d{1,4}(apples|apple|a)){0,1}(\d{1,4}(bananas|banana|b)){0,1}$