我想使用正则表达式删除所有以'!‘开头的行,但最后一个以这个字符开头的行除外。此外,应删除所有空行。
好了!第1行
!那是第二排。
!-又是一排
好了!a、b、c、d
0 1 2 3
4 5 6 7
8 9 10 11
期望产出:
a、b、c、d
0 1 2 3
4 5 6 7
8 9 10 11
到目前为止,我得到:
re.sub(r'(?m)^(?!.*a\sb\sc\sd)\#.*\n?', '', textstring)
发布于 2021-11-09 21:25:43
发布于 2021-11-09 21:15:56
您可以使用
re.sub(r'\A(?:!.*\n)+!\s*(.*a\sb\sc\sd)', r'\1', textstring)
见这个regex演示。详细信息
\A
-字符串的开始(?:!.*\n)+
-以!
开头的一行或多行!
-a !
,\s*
-零或多个空白空间(.*a\sb\sc\sd)
-第1组:除行中断字符以外的任何零个或多个字符,a
、空格、b
、空格、c
、空格、d
。替换值是Group 1值,\1
。
https://stackoverflow.com/questions/69905162
复制相似问题