![](/img/trans.png)
[英]Powershell RegEx: How can I match lines with two matching strings?
[英]how i can overlap two lines in regex?
我必须排队
o erl pp ng st i g
v a i r n
我想得到
“重叠字符串”
请帮我
我用记事本++
这不是很实际,但是这是一种有趣的方法。 如果您知道第一个字符串的长度。 而且您知道第二个字符串在下一行中,您只需找到每个空格并向前看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
----------------------------------------------------------------------
正如其他人所说,正则表达式并不真正适合该问题。 但也许您可以改用python:
"".join(map(max, zip("o erl pp ng st i g",
" v a i r n ")))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.