将vim-regex转换为用于re.sub的python



我在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*

最新更新