在我的编辑器中搜索时,我想匹配注释行的注释(相当于多行模式,或者我相信?)。
正则表达式(?<!^)%.+?$
正确匹配以下代码注释掉的第一行的注释(注释掉%
后的所有内容),
% foo = bar() % First comment
% baz = qui() % Second commment
但我无法弄清楚如何匹配第二行,假设它是由未知数量的空格或制表符缩进。
我尝试过这样做失败了:((?<!^)%.+?$|(?<!^\s)%.+?$)
(我之前的正则表达式放在“or
- 括号”中,重复并扩展以允许未知数量的空格;打破正则表达式,如+
和*
运算符显然不允许在(
s |
之后)
{{1}}。{/ p>
答案 0 :(得分:2)
^\s*%[^%\n]*%(.*?)$
应该完成这项工作。
说明:
^ # Start of a line
\s* # 0 or more white spaces
% # Just a regular % sign
[^%\n]* # Matches 0 or more times anything that is not a % or a new line (\n)
% # Just a regular % sign
(.*?) # Captures everything after the second % (ungreedy)
$ # End of a line (because the previous in ungreedy it will not match items on the new line
这表明环顾四周并不总是解决某些问题的最佳方法。
我在Notepad ++
中对以下数据进行了测试% foo = bar() % First comment
% test
% baz = qui() % Second commment
someFunction()
用第一个捕获的组替换它会导致:(这表明只捕获了正确的部分)
First comment
% test
Second commment
someFunction()