我必须行
o erl pp ng st i g
v a i r n
我想要
"重叠字符串"
请帮帮我
我使用notepad ++
答案 0 :(得分:2)
这并不实用,但这是一个有趣的方法。如果您知道第一个字符串的长度。而且你知道第二个字符串在下一行,你可以简单地找到每个空格并向前看x个字符以找到相关的字符串。在您的示例文本中,您的第一行长度为18个字符,这意味着空格下方的字符距离为18个字符,因此我们只需要查看该字符数即可找到相关字符。
(\S)|\s(?=.{18}(.))
如果您使用$1$2
作为替代,那么第一行将包含第一行的非空格或空格正下方的字符。
现场演示
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
----------------------------------------------------------------------
答案 1 :(得分:2)
正如其他人所说,正则表达式并不适合这个问题。但也许你可以改用python:
"".join(map(max, zip("o erl pp ng st i g",
" v a i r n ")))