如何在PyCharm中查找包含子串非连续出现两次的文件
在PyCharm中查找包含指定子串至少两次(非连续)的文件
核心正则表达式写法
要匹配非连续(可跨行)出现至少两次的sub_string,使用以下正则:
sub_string(?s).*sub_string
(?s):开启DOTALL模式,让正则中的.能匹配换行符,覆盖跨多行的场景;.*:匹配两次子串之间的任意内容,包括空内容、其他字符或换行。
具体操作步骤
- 打开PyCharm全局搜索:按
Ctrl+Shift+F(Windows/Linux)或Cmd+Shift+F(Mac)调出「Find in Path」窗口; - 在搜索框输入上述正则表达式;
- 勾选窗口右上角的「Regex」选项,启用正则匹配模式;
- 在「Scope」里选择「Project」,确保覆盖整个项目文件;
- 点击「Find」即可列出所有符合条件的文件。
补充:排除连续出现的情况
如果需要找非连续且不相邻的两次出现,用这个正则:
sub_string(?!sub_string)(?s).*sub_string
(?!sub_string):负向预查,确保第一次出现的sub_string后面不会紧接着另一个sub_string。
为什么(sub_string){2}无效
这个写法仅能匹配连续紧挨着的两次sub_string(比如sub_stringsub_string),无法匹配中间有其他内容或换行的场景,因此不适用你的需求。
内容的提问来源于stack exchange,提问作者JaSON
相关产品推荐
相关产品推荐

