你这个问题有点宽泛,我需要稍微确认一下场景。下面先给你常见场景的通用思路,你可以对号入座,也可以直接告诉我你用的是哪种语言 / 工具。
不同目标,方法不同。
s = "hello world"
idx = s.find("world") # 找不到返回 -1
# 或
idx = s.index("world") # 找不到抛异常
int idx = str.indexOf("world");
let idx = str.indexOf("world");
import re
positions = [m.start() for m in re.finditer("abc", text)]
int idx = 0;
while ((idx = str.indexOf("abc", idx)) != -1) {
System.out.println(idx);
idx += 1;
}
原则:
containsPython 示例(大文件)
with open("big.txt") as f:
for i, line in enumerate(f, 1):
if "target" in line:
print(i, line)
| 工具 | 快捷键 |
|---|---|
| VS Code | Ctrl + F / Ctrl + Shift + F |
| IntelliJ | Ctrl + F / Ctrl + Shift + F |
| Vim | /string |
| grep | grep -n "string" file |
SELECT * FROM table
WHERE column LIKE '%abc%';
⚠️ 大数据量时避免 %开头 的 LIKE。
你可以直接说:
我可以给你最优解 + 可直接用的代码。