在 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']
代码片段中的第一个示例提取双引号之间的字符串,第二个示例提取单引号之间的字符串。
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
我们所要做的就是将组用单引号而不是双引号括起来,并在字符集中放置一个单引号。
总的来说,正则表达式匹配零个或多个不是单引号且在单引号内的字符。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。