Регулярное выражение для соответствия каждому n di git имеет хотя бы один di git 1 - PullRequest
0 голосов
/ 18 июня 2020

Я новичок в регулярных выражениях и JavaScript. Мне нужно решить проблему с JavaScript. Я дал строку двоичного файла любой длины. Мне нужно найти, что каждый n di git двоичного файла содержит хотя бы одну "1". Если в каждом n di git есть хотя бы одна «1», тогда ОК. Но если нет, мне нужно вернуть минимальное количество «1», заменить на «0» для достижения требуемого результата. предположим, что двоичный код = 00100 и n = 2. (мне нужно вычислить, что каждые два di git содержат по крайней мере одну "1" di git). тогда мне нужно преобразовать строку, как это 01101. и вернуть 2, потому что я заменяю два «0» на «1»; Я думаю, что это легко сделать с помощью регулярного выражения. Но я не знаю, как это сделать. Мы будем благодарны за любые предложения.

1 Ответ

0 голосов
/ 18 июня 2020

Я сделал безумное предположение о том, что вы пытаетесь сделать. Я предполагаю, что вам дана строка нулей и единиц и wi sh, чтобы заменить '1' на каждый '0', за которым следует менее n символов, или если есть хотя бы один '1' среди следующих n символов.

Вот две строки.

0011000010010100000
1111011111111100111

Первая преобразуется во вторую, если при n = 3 каждое совпадение первой строки следующим регулярным выражением преобразовано в '1':

/0(?=.{0,2}(?:$|1))/

Здесь 2 равно n-1.

Запустите двигатель!

Javascript ' Механизм регулярных выражений s выполняет следующие операции.

0           : match '0'
(?=         : begin a positive lookahead
  .{0,2}    : match 0-2 characters
  (?:$|1)   : match the end of the string or '1'
)           : end positive lookahead
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...