我需要一个正则表达式来匹配由一个或多个单行注释组成的注释块。
单行注释:
# This is a single line comment
由多个单行注释组成的注释块:
# This is a multiple line comment
# which is just a block of single line comments
# that are strung together
注释行的第一个字符可以以下列任何字符开头:;#%|*
我发现以下正则表达式与各个注释行匹配:[;#%|*]{1}(.+)
但是我不知道如何匹配多于一行的块。 我想在整个块中保留所有字符,包括换行符。
答案 0 :(得分:1)
匹配注释的开头,行的其余部分,然后重复出现0个或更多的组,该组以换行符,可选的空格开头,然后是注释开始字符和行的其余部分:>
[;#%|*].*(?:(?:\r\n|\r|\n) *[;#%|*].*)*
[;#%|*]
-初始注释字符.*
-第一行的其余部分(?:(?:\r\n|\r|\n) *[;#%|*].*)*
-重复0次或更多次:
(?:\r\n|\r|\n)
-换行符(如果您事先知道换行符的格式,则可以简化此操作,例如,可以简化为\n
)[;#%|*]
-初始注释字符.*
-行的其余部分答案 1 :(得分:0)