繁体   English   中英

将vim regex转换为python以进行re.sub

[英]convert vim regex to python for re.sub

我在vim下有一个正常的正则表达式: /^ \\{-}\\a.*$\\n

我实现了全局搜索并将其替换为:%s/^ \\{-}\\a.*$\\n//这非常有用-删除所有以任意数量的空格开头(非贪婪匹配)的行一行末尾的字母和其他内容,包括换行符。

我无法(为了挽救自己的灵魂)弄清楚Python中类似的正则表达式。 这对我来说很有意义:

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*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM