假设我有以下文字:
*group: basketball
*program: Progress_Increment
*question: How many points do you get for a "slam dunk" in basketball?
*shuffle
2
1
3
4
*save: basketball_q1
-- *countdown: 30.seconds
*throwaway
>> basketball_answer = "2"
我希望能够捕获* shuffle和* save之间的文本,但不包括单词* shuffle和* save。
我当前的尝试如下所示:
((?<=\*shuffle).*(?=\*save))
如果我只有上面的文本框,那可以工作。如果相反,如果我有大量文本,其中的令牌“ * save”出现多次,那么上述正则表达式将匹配以* shuffle开头的所有内容,并包含直到* save最后一个实例的所有内容。
例如,请参见此处:https://regexr.com/4edrf
我想要的是能够仅在* shuffle和* save之间立即匹配四个对象,并将它们存储为Python中列表的列表,如下所示:
list_of_answers = re.findall("(?<=\*shuffle)(.*)(?=\*save)", big_string, flags = re.DOTALL)