我在vim:/^ {-}a.*$n
下有一个可用的正则表达式
我实现了全局搜索并替换为:%s/^ {-}a.*$n//
这样做效果很好——删除所有以任意数量的空格开头的行(非贪婪匹配),然后是一个字母和任何其他到行末尾的行,包括换行符。
我无法(拯救我的灵魂)在Python中找到类似的regex。以下是对我来说有意义的:
x = re.sub("^ *?a.$n","",y)
但这没有任何作用。
非常感谢你睿智的回答。
a
表示Python中的钟形字符(0x07),而$n
是一个多余的坏主意,因此:
x = re.sub(r"^ *[A-Za-z].*n","",y)
此外,没有理由在这里写' *?'
而不是' *'
,因为如果匹配的话,后面总是跟着一个非空格。
如果想要匹配任意数量的空白,也可以使用s
序列。
任何字母都将由[a-zA-Z]
字符类匹配。你也不需要使用$
和n
,两者都可以
建议如下:
x = re.sub(r"^s*[a-zA-Z].*(r|n)","",y)
如果至少需要一个空白,请使用s+
而不是s*