我正在尝试匹配以任意数量的空格开头的连续行|
,然后是字符。我正在使用s
标志,以便.
匹配换行符。
到目前为止,我之前使用的空白数量有限|
。
我在确定达到不符合要求的线路的部分遇到问题。出于某种原因\n\s*[^\|]
,没有做到这一点。我现在正在做的事情如下:
(?P<terminating>
\n( # when newline is encountered...
[^\|\s] # check if next character is not: (| or space)
|
[\s][^\|\s] # check if next characters are not: space + (| or space)
|
[\s][\s][^\|\s] # check if next characters are not: space + space + (| or space)... And so on....
)
|
$
)
这显然只适用于两个空间。我想让这项工作适用于任意数量的空间。我研究了递归,但在这种情况下,这似乎是一把很重的枪。现在是我的问题:为什么不起作用\n\s*[^\|]
,是否有另一种方法可以在不递归的情况下解决这个问题?
下面是一个输入示例和我想得到的结果匹配:
输入字符串:
Lorem ipsum dolor sit amet,
consectetur adipisicing
elit,
|sed do
|eiusmod tempor incididunt
|ut labore et dolore magna aliqua.
Ut enim ad minim veniam,
quis nostrud exercitation
ullamco laboris nisi ut
aliquip ex ea commodo consequat.
输出是一个包含内容的字符串:
|sed do\n |eiusmod tempor incididunt\n |ut labore et dolore magna aliqua.
我不希望其中的每一行都匹配三个匹配项|
。