正则表达式:匹配取反 'comment' 字符前后的一组任意空格
regex: match on negating a set of abitrary whitespaces before and after a 'comment' character
我正在寻找一个正则表达式来(不)匹配由任意空格包裹的注释字符
例如以'#'作为注释字符:
应该匹配的行:
code line here
code line here
行应该不匹配:
#code line here
# code line here
# code line here
所以,类似于集合的否定 (zero/*whitespaces # zero/*whitespaces)
^(\s#\s)
以下正则表达式将匹配没有字符“#”的行
^((?!^\s+#).)*$
可能有些东西没有优化,但试试这个:
^[^#]*(?!\s*#).
这将从行的开头获取所有未跟随 spaces + #
组合的符号。
对于您的示例数据,如果支持前瞻,您可以使用否定前瞻来断言从字符串的开头开始,右边的内容不是 0+ 次空白字符后跟 #
.
如果是,则匹配整个字符串。
^(?!\s*#).+$
将匹配:
^
字符串开头
(?!
否定前瞻
\s*#
匹配 0+ 次空白字符,然后 #
)
关闭前瞻
.+
匹配除换行符以外的任何字符 1+ 次
$
字符串结束
我正在寻找一个正则表达式来(不)匹配由任意空格包裹的注释字符
例如以'#'作为注释字符:
应该匹配的行:
code line here
code line here
行应该不匹配:
#code line here
# code line here
# code line here
所以,类似于集合的否定 (zero/*whitespaces # zero/*whitespaces)
^(\s#\s)
以下正则表达式将匹配没有字符“#”的行
^((?!^\s+#).)*$
可能有些东西没有优化,但试试这个:
^[^#]*(?!\s*#).
这将从行的开头获取所有未跟随 spaces + #
组合的符号。
对于您的示例数据,如果支持前瞻,您可以使用否定前瞻来断言从字符串的开头开始,右边的内容不是 0+ 次空白字符后跟 #
.
如果是,则匹配整个字符串。
^(?!\s*#).+$
将匹配:
^
字符串开头(?!
否定前瞻\s*#
匹配 0+ 次空白字符,然后#
)
关闭前瞻.+
匹配除换行符以外的任何字符 1+ 次$
字符串结束