Python中不使用find,rfind,index等内置函数如何获取一个字符串中另一个字符串第二次出现的位置
时间: 2023-05-26 13:02:04 浏览: 53
可以使用正则表达式,利用re模块中的finditer函数来找到字符串中所有匹配的子串,找到第二个匹配的位置即可。下面是一个示例代码:
```python
import re
def find_second_occurrence(string, sub_string):
matches = list(re.finditer(sub_string, string))
if len(matches) < 2:
return -1
else:
return matches[1].start()
# 示例用法
string = "hello world, hello Python"
sub_string = "hello"
print(find_second_occurrence(string, sub_string)) # 输出: 13
```
在上面的代码中,我们首先使用re模块中的finditer函数找到字符串中所有匹配的子串,然后判断匹配串的数量是否大于等于2,如果大于等于2,则返回第二个匹配串的起始位置。如果匹配串数量小于2,说明子串在原字符串中至多只出现了一次,返回-1表示未找到第二个匹配串。
相关问题
编写一子函数查找指定字符在字符串中第一次和最后一次出现的位置
好的,下面是代码:
```python
def find_first_and_last(s, c):
first = s.find(c)
last = s.rfind(c)
return first, last
```
这个函数接受两个参数,一个是字符串 `s`,另一个是要查找的字符 `c`。它会使用字符串的 `find` 方法来查找第一次出现的位置,使用 `rfind` 方法来查找最后一次出现的位置。最后,它会返回一个包含两个值的元组,第一个值是第一次出现的位置,第二个值是最后一次出现的位置。
python 用函数找出字符串内某个字符串最后一次出现的位置
可以使用 Python 内置的字符串函数 `rfind()` 来找出字符串内某个字符串最后一次出现的位置。这个函数与 `find()` 函数类似,但是它返回的是最后一次出现的位置而不是第一次出现的位置。
下面是一个示例代码:
```python
def find_last_occurrence(s, target):
return s.rfind(target)
```
其中 `s` 是原始字符串,`target` 是要查找的子字符串。这个函数会返回 `target` 最后一次出现的位置,如果没有找到则返回 `-1`。
例如,如果我们要在字符串 `"hello world"` 中找到最后一次出现的字母 `"l"` 的位置,可以调用这个函数:
```python
s = "hello world"
target = "l"
last_pos = find_last_occurrence(s, target)
print(last_pos) # 输出 9
```
这里 `last_pos` 的值为 `9`,因为最后一个 `"l"` 出现在字符串的第 10 个位置。