Regex 在开始字符串和结束字符串之间匹配单个字符

Regex 在开始字符串和结束字符串之间匹配单个字符,regex,sed,Regex,Sed,我似乎根本不懂正则表达式。如何匹配位于起始字符串和结束字符串之间的字符。比如说 #开始编辑 #值a=0 #值b=1 #端编辑 我想匹配#开始编辑和#结束编辑之间的任何# 具体来说,我想使用sed在各种文件上用零替换匹配值(删除它们),这些文件可能有或可能没有多个开始编辑和结束编辑部分。sed是基于行的。您可以在一行中轻松地基于正则表达式进行搜索、替换。但在多行上搜索/替换并没有真正简单的方法。AWK可能会成功 ^#START-EDIT.*(#) *. *#END-EDIT$ 如果您在一行上有正

我似乎根本不懂正则表达式。如何匹配位于起始字符串和结束字符串之间的字符。比如说

#开始编辑

#值a=0

#值b=1

#端编辑

我想匹配#开始编辑和#结束编辑之间的任何#


具体来说,我想使用sed在各种文件上用零替换匹配值(删除它们),这些文件可能有或可能没有多个开始编辑和结束编辑部分。

sed是基于行的。您可以在一行中轻松地基于正则表达式进行搜索、替换。但在多行上搜索/替换并没有真正简单的方法。AWK可能会成功

^#START-EDIT.*(#) *. *#END-EDIT$
如果您在一行上有正则表达式,那么下面的命令可能就是您要查找的命令

sed -e "/^#START-EDIT.*#END-EDIT$//" myInput.txt

组(#)匹配任何出现的#,其旁边的“*”匹配0个或更多出现的相同:)您可以根据需要在开头使用“^”,在结尾使用“$”。欢呼这应该是非贪婪的。