我需要一个正则表达式来匹配由一个或多个单行注释组成的注释块。
单行评论:
# 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 次或多次以换行符、可选空格开头的组,后跟注释起始字符和行的其余部分:
[;#%|*].*(?:(?:\r\n|\r|\n) *[;#%|*].*)*
See 这个正则表达式演示.
-
[;#%|*]
- 初始评论字符
-
.*
- 第一行的其余部分
-
(?:(?:\r\n|\r|\n) *[;#%|*].*)*
- Repeat 0 or more times:
-
(?:\r\n|\r|\n)
- 换行符(如果您提前知道换行符的格式,您可以简化它,例如,也许只是\n
)
- 空格后跟 * - 0 个或多个空格
-
[;#%|*]
- 初始评论字符
-
.*
- 其余线路
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)