python求字符串中单词出现的索引
时间: 2024-03-06 16:50:54 浏览: 44
可以使用正则表达式和列表推导式来实现。示例代码如下:
```python
import re
s = "hello world, hello python, hello AI"
word = "hello"
# 使用正则表达式查找单词出现的位置
indices = [m.start() for m in re.finditer(r"\b{}\b".format(word), s)]
print(indices) # 输出 [0, 13, 26]
```
解释一下代码:
- `re.finditer(r"\b{}\b".format(word), s)` 使用正则表达式 `\b{}\b` 查找单词的位置,其中 `\b` 表示单词的边界,`{}` 表示要查找的单词,在这里是变量 `word`。
- `m.start()` 取出每个匹配对象的起始位置。
- 列表推导式 `[m.start() for m in re.finditer(r"\b{}\b".format(word), s)]` 用于将所有匹配的起始位置组成一个列表返回。
相关问题
python提取字符串中特定
字符或子串的方法有很多种。以下是几种常见的方法:
1. 使用字符串的find()方法:该方法可以用来查找特定字符或子串在字符串中的位置。如果找到,则返回第一个匹配的索引;如果找不到,则返回-1。可以结合循环使用该方法来提取所有匹配的位置。
```python
string = "Python is a powerful programming language."
substring = "is"
start = 0
while True:
index = string.find(substring, start)
if index == -1:
break
print(f"Found at index: {index}")
start = index + 1
```
2. 使用正则表达式:使用re模块可以进行更灵活的字符串匹配。可以使用re.findall()方法来提取所有匹配的子串。
```python
import re
string = "Python is a powerful programming language."
pattern = r"\b\w{2}\b" # 提取长度为2的单词
matches = re.findall(pattern, string)
print(matches)
```
3. 使用字符串的split()方法:该方法可以根据指定的分隔符将字符串拆分为多个子串,并返回一个列表。可以通过遍历列表来提取特定的子串。
```python
string = "Python is a powerful programming language."
words = string.split(" ")
for word in words:
if word == "is":
print(word)
```
这些是提取字符串中特定字符或子串的几种常见方法,具体使用哪种方法取决于你的需求和字符串的结构。
python计算字符串最后一个单词的长度
可以使用Python中的字符串方法和列表方法来计算字符串中最后一个单词的长度。具体步骤如下:
1. 使用strip()方法去除字符串两端的空格。
2. 使用split()方法将字符串按照空格分割成一个列表。
3. 使用列表的索引-1获取最后一个单词。
4. 使用len()方法计算最后一个单词的长度。
示例代码如下:
```
s = input().strip() # 输入字符串并去除两端空格
words = s.split() # 将字符串按照空格分割成一个列表
last_word = words[-1] # 获取最后一个单词
length = len(last_word) # 计算最后一个单词的长度
print(length) # 输出最后一个单词的长度
```
注意:以上代码中的input()函数用于从标准输入读取字符串,可以根据需要替换为其他方式获取字符串。