我有一个字符串,我想用新的行字符分割,但是如果n字符在字符串的开头,我想保留它。我知道A匹配字符串的开头,但我不知道如何求反它。我猜我会用这样的东西:
re.split(r"(expression here) & (?<! )n", text)
(我也留下n字符前加空格)
谁能给我指个正确的方向?一个例子:
"
:10 e:1110 h:1111 l:110 o:000 x:001 y:010 z:011
11111110110110000100011001010011"
或
"n:10 e:1110 h:1111 l:110 o:000 x:001 y:010 z:011n11111110110110000100011001010011"
应该显示为
["n:10 e:1110 h:1111 l:110 o:000 x:001 y:010 z:011","11111110110110000100011001010011"]
由于遍历实际上不会移动主题字符串中正则表达式引擎的"游标",因此您可以简单地在同一位置检查两个条件,方法是依次编写两个遍历:
(?<![ ])(?<!A)n
注意,A
匹配的是字符之间的位置,而不是字符之间的位置,所以forward同样有效:
(?<![ ])(?!A)n
方括号不是必需的,但我发现它们有助于提高可读性,因为它们更容易发现文字空白字符。