pavin mishra Ответов: 1

У меня есть такая Струна"1 0 -1 2 0 1 0" . Как посчитать количество паттернов, которые начинаются с 0 и заканчиваются на 0.


Как и в приведенном выше примере, существует два паттерна(0 -1 2 0 и 0 1 0).
Каков будет синтаксис для поиска этого с помощью регулярных выражений в python?

Что я уже пробовал:

Я пробовал 'r^[0\s]-\d[1-9]', но это не работает!

BillWoodruff

достаточно ли вы знакомы с C#, чтобы преобразовать пример в Python ?

1 Ответов

Рейтинг:
4

OriginalGriff

Регулярное выражение - это не "подсчет", а система обработки текста.
Но... если вы найдете все "пробелы" 0 "пробелов" как отдельные группы, вы можете сказать, что существует много шаблонов, которые соответствуют вашим критериям, и регулярное выражение сообщит вам количество совпадений.
Таким образом, в вашем образце "1 0 -1 2 0 1 0" Есть три записи "<whitespace>0<whitespace>", Поэтому в зависимости от того, как вы хотите их обработать, есть два или три разных "паттерна": 0 -1 2 0, 0 -1 2 0 1 0, и 0 1 0

Зная количество нулей, вы узнаете количество паттернов.


BillWoodruff

не уверен, что в этом случае ОП нуждается в каком-то обратном отслеживании, которое вернуло бы 0 -1 2 0 1 0 ... учитывая два результата, описанных в ОП.

OriginalGriff

Почему? Если все, что вам нужно, - это количество простых паттернов, а его выборка подразумевает это, то количество нулей говорит вам об этом, это количество промежутков между нулями.
Или я что-то упускаю?

BillWoodruff

Привет, как я вижу, ОП хочет иметь шаблоны с разделителями '0', например: '0 -1 2 0'

Рассмотрим: 0 0 1 2 3

Два нуля, один паттерн: "0 0" ... пока ОП не скажет нам более определенно, как он хочет сканировать, есть неопределенность ...