python中,给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。
时间: 2024-11-22 13:36:09 浏览: 0
在Python中,你可以使用内置函数`str.index()`或`str.find()`来查找子字符串`needle`在主字符串`haystack`中的第一个匹配位置。这两个函数都返回子字符串第一次出现的位置,如果没有找到则会抛出异常或返回-1。
```python
def find_substring(haystack, needle):
try:
index = haystack.index(needle)
except ValueError:
index = -1
return index
# 示例
haystack = "Hello, World!"
needle = "World"
print(find_substring(haystack, needle)) # 输出:7
needle_not_found = "missing"
print(find_substring(haystack, needle_not_found)) # 输出:-1
```
如果你需要更通用的解决方案,可以编写一个简单的循环遍历搜索,避免了抛出异常:
```python
def find_substring_iterative(haystack, needle):
for i in range(len(haystack) - len(needle) + 1): # 避免越界
if haystack[i:i+len(needle)] == needle:
return i
return -1
# 使用迭代方法查找
index = find_substring_iterative(haystack, needle_not_found)
print(index) # 输出:-1
```
阅读全文