gpt4 book ai didi

python - 引号之间的正则表达式向前看 - Python

转载 作者:行者123 更新时间:2023-12-01 04:09:34 25 4
gpt4 key购买 nike

我有这个:

myText = str(^123"I like to"^456&U"play video games and"$"eat cereal")

我想提取引号之间(包括引号)之间的所有内容,拆分 $ 符号之前和之后的所有内容,并将它们附加到嵌套列表中。例如

myTextList = [[“我喜欢”,“玩电子游戏和”],[“吃麦片”]]

这是我尝试过的:

tempTextList = []
for text in re.findall('(?<=\$)"[^"]*"(?<!\^)',myText,re.DOTALL)
tempTextList.append(text)
myTextList.append(tempTextList)

我使用了 https://www.regex101.com/#python 网站并尝试了几乎所有我能想到的...

(?!\$)"(?!\^\00\+\-\&)[^"].*"等等...

re.findall 部分并没有真正按照我想要的方式工作。

有人能指出我正确的方向吗?

谢谢

最佳答案

您可以将 "[^"]*" 正则表达式与 re.findall 一起使用:

import re
s = 'myText = str(^123"I like to"^456&U"play video games and"$"eat cereal")'
print(re.findall(r'"[^"]*"', s))

参见 demo

它用双引号匹配您需要的双引号子字符串: ['"I like to"', '"play video games and"', '"eat cereal"']

请注意,"[^"]*" 匹配 " 后跟零个或多个字符,而不是 " 后跟 "

如果需要获取"..."中不带双引号的内容,可以使用捕获机制:

r'"([^"]*)"'

re.findall 将仅返回第 1 组中的捕获。请参阅 another demo

关于python - 引号之间的正则表达式向前看 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35139680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com