я должен линийКак я могу перекрывать две строки в регулярном выражении?
o erl pp ng st i g
v a i r n
я хочу, чтобы получить
"перекрывание строка"
пожалуйста, помогите мне
я использую Notepad ++
я должен линийКак я могу перекрывать две строки в регулярном выражении?
o erl pp ng st i g
v a i r n
я хочу, чтобы получить
"перекрывание строка"
пожалуйста, помогите мне
я использую Notepad ++
Это ISN Это действительно практично, но вот интересный способ сделать это. Если вы знаете длину своей первой строки. И вы знаете, что вторая строка находится на следующей строке, вы можете просто найти каждое пространство и просмотреть символы x, чтобы найти связанный. В вашем примере текста ваша первая строка имеет длину 18 символов, что означает, что символ прямо под пробелом составляет 18 символов, поэтому нам просто нужно заглянуть в будущее, чтобы найти количество символов, чтобы найти тот, о котором идет речь.
(\S)|\s(?=.{18}(.))
Если вы использовали $1$2
в качестве замены, то первая строка будет содержать либо не-пробелы из первой строки или символ непосредственно под пробелом.
Live Demo
https://regex101.com/r/oT5lZ1/1
Образец текста
o erl pp ng st i g
v a i r n
После замены
overlapping string
v a i r n
NODE EXPLANATION
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
\S non-whitespace (all but \n, \r, \t, \f,
and " ")
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
| OR
----------------------------------------------------------------------
\s whitespace (\n, \r, \t, \f, and " ")
----------------------------------------------------------------------
(?= look ahead to see if there is:
----------------------------------------------------------------------
.{18} any character (18 times)
----------------------------------------------------------------------
( group and capture to \2:
----------------------------------------------------------------------
. any character
----------------------------------------------------------------------
) end of \2
----------------------------------------------------------------------
) end of look-ahead
----------------------------------------------------------------------
У меня вопрос, как вы получите это изображение https://www.debuggex.com/ i/DhQJfjTlZ61N8q2R.png –
Создано через [Debuggex.com] (https://www.debuggex.com/r/I61a9uH8imt9QkHc) –
ok благодарит за всех –
Как уже говорили другие регулярные выражения не очень подходит к этой проблеме. Но, возможно, вы можете использовать python вместо:
"".join(map(max, zip("o erl pp ng st i g",
" v a i r n ")))
Я думаю, что ответ Джила будет лучше масштабироваться, если у вас есть доступ к python или аналогичный подход на любом языке. –
Я не знаю, что вы можете сделать это легко с регулярным выражением. Если вам просто нужно прочитать две строки и объединить результаты. Я бы просто перебирал первую строку (используя массивы или все, что вы выберете) и выводил символ в этой позиции из первой строки, если только это не пробел. Если это пробел, выведите символ в этой же позиции из второй строки (что также может быть пробелом, но это нормально.) –