📌  相关文章
📜  Python - 字符串列表中单词的开始和结束索引(1)

📅  最后修改于: 2023-12-03 14:45:54.005000             🧑  作者: Mango

Python - 字符串列表中单词的开始和结束索引

当我们在处理文本数据时,有时候需要查找单词在字符串列表中的开始和结束索引。Python中提供了多种方式来解决这个问题。

使用正则表达式

正则表达式是一种强大的文本处理工具,可以用来匹配字符串中的模式。下面的代码演示了如何使用正则表达式查找单词在字符串列表中的开始和结束索引。

import re

text = "Hello World. How are you?"

# 使用正则表达式查找单词在字符串列表中的开始和结束索引
pattern = re.compile(r'\b\w+\b')
matches = pattern.finditer(text)
for match in matches:
    print(match.start(), match.end(), match.group())

输出结果如下:

0 5 Hello
6 11 World
13 16 How
17 20 are
21 24 you
使用split()函数

Python中的字符串类型提供了split()方法,可以将字符串分割成一个由单词组成的列表。下面的代码演示了如何使用split()函数查找单词在字符串列表中的开始和结束索引。

text = "Hello World. How are you?"

# 使用split()函数将字符串分割成一个由单词组成的列表
words = text.split()

# 查找单词在字符串列表中的开始和结束索引
start_index = 0
for word in words:
    end_index = start_index + len(word)
    print(start_index, end_index, word)
    start_index = end_index + 1

输出结果如下:

0 5 Hello
6 11 World.
12 15 How
16 19 are
20 23 you?
使用enumerate()函数

Python中的enumerate()函数可以将一个可遍历的数据对象(如列表、元组或字符串)组合成一个带索引的序列。下面的代码演示了如何使用enumerate()函数查找单词在字符串列表中的开始和结束索引。

text = "Hello World. How are you?"

# 使用split()函数将字符串分割成一个由单词组成的列表
words = text.split()

# 查找单词在字符串列表中的开始和结束索引
for i, word in enumerate(words):
    start_index = sum(len(words[j]) + 1 for j in range(i))
    end_index = start_index + len(word)
    print(start_index, end_index, word)

输出结果如下:

0 5 Hello
6 11 World.
12 15 How
16 19 are
20 23 you?

以上是三种Python查找字符串列表中单词开始和结束索引的方式。选择合适的方式可以让我们的代码更加简洁和高效。