[英]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.