我在 Notepad++ 中使用正则表达式,试图匹配如下的一般模式:
/*
<FooBar>(<--find open bracket and end on finding a closing bracket-->)
<FooBar> (foo
bar);
<FooBar> (foo
bar
baz)
*/
我正在尝试使用匹配:
^\s*?<FooBar>\s+?.+?\(.*?\)
启用了“匹配换行符”,但没有按预期工作;带有书签的行显示在上面的空白行上,并且无法为我需要的所有行添加书签。
我想使用这个正则表达式使用“在文件中查找”在多个文件中搜索匹配项。
所以我发现了一些东西。因为它使用多行,所以 \s* 将在到达 foobar 之前匹配。所以通过替换删除所有背线
^\s+
没有什么可以解决这个问题。
^\s*<foobar>\s+.+?\(.*?\)
完全符合我的需要,但有一个问题,那就是 notepad++ 不会为所有标记的行添加书签,只是查找的开始;如果它是多行查找,它只会为匹配的第一行添加书签(尽管其余行将被标记)。因此,这意味着如果您使用“在文件中查找”进行搜索,它只会返回不太有用的带有书签的行。
但是,您可以通过 Search-->Remove Unbookmarked Lines 删除所有未标记的行,但我需要进行批量搜索,所以这似乎是不可能的。
但是,其他编辑器会返回所有标记的行,例如 editpad pro。