社区在10天前审查了是否重新讨论这个问题,并将其关闭:原始关闭原因未解决我正在尝试快速查找包含一个术语但缺少另一个术语的所有.Java文件。我使用的是MyEclipse 10.7及其‘搜索|文件搜索’功能,它支持正则表达式。正则表达式在这种情况下可以工作吗?正确的正则表达式是什么?
fzwojiic1#
我能找到的唯一有效的解决方案是以下Regex:
^(?!.[\s\S]*MISSING_TERM).[\s\S]*INCLUDED_TERM.*$
它会查找包含INCLUDED_TERM但不包含MISSING_TERM的每个文件,而不考虑行。关键字是sS,它确保搜索整个文件,而不是每行。
INCLUDED_TERM
MISSING_TERM
sS
vc6uscn92#
如果您想在一行中找到它,可以这样使用它:
^(?!.*MISSING_TERM).*INCLUDED_TERM.*$
您还可以使用``作为转义字符,因为您可能需要它,就像class.variable一样。
class.variable
gk7wooem3#
您可以使用类似以下内容:
(?<!.*bar)foo(?!.*bar)
如果找到了“foo”而没有找到“bar”,则将匹配。注意:您必须配置您的搜索引擎使用多行正则表达式(例如:记事本++有一个选项称为“.匹配换行符”),因为通常点代表除*换行符以外的任何字符。
3条答案
按热度按时间fzwojiic1#
我能找到的唯一有效的解决方案是以下Regex:
它会查找包含
INCLUDED_TERM
但不包含MISSING_TERM
的每个文件,而不考虑行。关键字是
sS
,它确保搜索整个文件,而不是每行。vc6uscn92#
如果您想在一行中找到它,可以这样使用它:
您还可以使用``作为转义字符,因为您可能需要它,就像
class.variable
一样。gk7wooem3#
您可以使用类似以下内容:
如果找到了“foo”而没有找到“bar”,则将匹配。
注意:您必须配置您的搜索引擎使用多行正则表达式(例如:记事本++有一个选项称为“.匹配换行符”),因为通常点代表除*换行符以外的任何字符。