Как сопоставить конкретную позицию на основе номера смещения с определенным номером длины с помощью регулярного выражения?

avatar
David Toledo
9 августа 2021 в 00:30
27
1
0

Мне нужно сопоставить символы, не зная, какими они будут, и единственные данные, которые у меня есть, это число смещения, указывающее, где начать сопоставление, и число длины, указывающее, какой длины должно быть совпадение.

Например:

Моя строка: "Сьюзен ходит в магазин каждый день"

"смещение":17 "длина":5

Соответствует слову "магазин"

^.{5} Это регулярное выражение соответствует длине, но есть ли способ добавить к нему правило смещения?

Мой инструмент не поддерживает группы захвата.

Источник

Ответы (1)

avatar
Tim Biegeleisen
9 августа 2021 в 00:40
0

Предполагая, что ваш инструмент/язык регулярных выражений поддерживает это, вы можете использовать группу захвата здесь:

^.{17}(.{5})

Демо

Это позволит пропустить первые 17 символов, а затем захватить следующие 5 символов в первой группе захвата.

Изменить:

Если ваш инструмент регулярных выражений не имеет группы захвата, вы также можете использовать просмотр назад с фиксированной шириной, например

(?<=^.{17}).{5}

Демо

David Toledo
9 августа 2021 в 00:45
0

Мой инструмент не поддерживает группы захвата :/

Tim Biegeleisen
9 августа 2021 в 00:47
0

@DavidToledo Затем используйте просмотр назад с фиксированной шириной. Если ваш инструмент также не поддерживает это... то, к сожалению, вам нужен более мощный инструмент.