繁体   English   中英

我如何在正则表达式中重叠两行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM