我想在注释字符#
之前匹配所有内容,在 javascript 中使用正则表达式。
例如,如果我有
opt = "include # "everything" # until # the # real # comment\" # comment "not quotes (comment)"
我希望正则表达式与opt = "include # "everything" # until # the # real # comment\"
匹配
请注意,我还在注意两个转义序列:
\
:转义的反斜杠"
:转义的引号
为了清楚起见,我有左手的"变量",使用双引号的字符串(以及引号内的两个转义字符:"
,\
(,以及使用#
的内联注释。此外,赋值运算符=
.也不需要在每一行中都放置逐行注释,因此opt = "test # test"
应该匹配。想想你曾经编辑过的任何配置文件......
opt_name = "opt value" # comment
我当然尝试过正则表达式 101,但我对这种复杂性的正则表达式不太满意,而且不知所措。
最好的办法是使用以下正则表达式,但过滤掉第一个捕获组为空的正则表达式:
((?<!(?<!\)\)".*?(?<!(?<!\)\)")|#.*