使用正则表达式匹配可能包含引号的句子""

时间:2015-03-15 10:15:09

标签: python regex python-3.x findall

我现在已经尝试了几天写一个正则表达式,它将捕获以特定字符串开头的句子,并以不允许的字符(<)结束。这句话可能包含任何标点符号(在我的头顶[]()-,.!?\/),最重要的是'",但总是会以同样的事情开始(<)。所以我的正则表达式如下:

    "starting string foo (?:[a-zA-z0-9_]|[-,.!?()\[\]\'\"\/]|[\s])+"

这样可以正常工作,所有句子都以&#34开头;起始字符串为foo"并以<结束后。它成功地获得了每一个标点符号的句子....除了双引号(")。我不明白为什么会出现这种情况,因为它很容易得到单引号(')和其他标点符号,例如。斜线和破折号。

例如 - 字符串

     starting string foo Hubble revisits the famous "pillars of creation" with a new lens <

它只捕获

    starting string foo Hubble revisits the famous

但是像

这样的字符串
     starting string foo Buzz Aldrin's self-portrait during Gemini 12 with the Earth reflecting off his visor, 12 November 1966 [2651x2632] <

带有各种标点符号(&#39; - [,)它可以捕获我想要的所有内容 -

    starting string foo Buzz Aldrin's self-portrait during Gemini 12 with the Earth reflecting off his visor, 12 November 1966 [2651x2632]

1 个答案:

答案 0 :(得分:2)

有什么问题
/starting string foo (.*)\</