在 Python 中提取引号之间的字符串

使用 re.findall() 方法提取引号之间的字符串,例如 my_list = re.findall(r'"([^"]*)"', my_str).re.findall 方法将匹配字符串中提供的模式,并返回一个包含引号之间的字符串的列表。

import re

# ✅ 提取双引号之间的字符串
my_str = 'One "Two" Three "Four"'

my_list = re.findall(r'"([^"]*)"', my_str)

print(my_list)  # ?️ ['Two', 'Four']
print(my_list[0])  # ?️ 'Two'
print(my_list[1])  # ?️ 'Four'
# ---------------------------------------------------

# ✅ 提取单引号之间的字符串

my_str_2 = "One 'Two' Three 'Four'"

my_list_2 = re.findall(r"'([^']*)'", my_str_2)

print(my_list_2)  # ?️ ['Two', 'Four']

在 Python 中提取引号之间的字符串

代码片段中的第一个示例提取双引号之间的字符串,第二个示例提取单引号之间的字符串。

re.findall 方法接受一个模式和一个字符串作为参数,并返回一个字符串列表,其中包含字符串中模式的所有非重叠匹配。

让我们看看第一个例子中的正则表达式。

import re

# ✅ 提取双引号之间的字符串
my_str = 'One "Two" Three "Four"'

my_list = re.findall(r'"([^"]*)"', my_str)

print(my_list)  # ?️ ['Two', 'Four']
print(my_list[0])  # ?️ 'Two'
print(my_list[1])  # ?️ 'Four'

正则表达式以双引号开始和结束,因为我们想要匹配字符串中双引号内的任何内容。

正则表达式中的括号 () 匹配内部的任何内容,并指示组的开始和结束。

匹配后仍然可以检索组的内容。

方括号 [] 用于表示一组字符。

集合开头的插入符号 ^ 表示“NOT”。 换句话说,匹配所有不是双引号的字符。

星号 * 匹配前面的正则表达式(双引号除外)零次或多次。

总的来说,正则表达式匹配零个或多个不是双引号且位于双引号内的字符。

要学习更多的正则表达式的知识,可以参考我们的 正则表达式教程

import re

my_str_2 = "One 'Two' Three 'Four'"

my_list_2 = re.findall(r"'([^']*)'", my_str_2)

print(my_list_2)  # ?️ ['Two', 'Four']

print(my_list_2[0])  # ?️ Two
print(my_list_2[1])  # ?️ Four

我们还可以使用这种方法从单引号之间提取字符串。

import re


my_str_2 = "One 'Two' Three 'Four'"

my_list_2 = re.findall(r"'([^']*)'", my_str_2)

print(my_list_2)  # ?️ ['Two', 'Four']

print(my_list_2[0])  # ?️ Two
print(my_list_2[1])  # ?️ Four

我们所要做的就是将组用单引号而不是双引号括起来,并在字符集中放置一个单引号。

总的来说,正则表达式匹配零个或多个不是单引号且在单引号内的字符。