两个字符串之间的正则表达式匹配,但不包括那些字符串

时间:2019-05-21 21:38:45

标签: python regex

假设我有以下文字:

*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)

0 个答案:

没有答案