2016-11-06 40 views
1

例如假设1有这样的文字。大多数Python的方式,通过文本搜索找到问题的答案

Lorem存有胡萝卜,生态番茄汤。没有 酱是从气体制成。现在阿梅德,谁 软凄然一笑,尽管户外发布,现在谁 开发商不只是胡萝卜。得力士作为雇员,局宣传,

  1. 你叫什么名字和职业?

下午1点杰里和1'm失业

  • 多大你的家人?
  • 有我们五

    也很LOREM,笔记本电脑或忍受它,牛肉沙拉怀孕。 功课排球裙子房地产。茉莉,但开发商说, 扣除。应力谷,但定时层。在动画片,而不是仇恨 执法,malesuada feugiat mauris Nam等。生活聊天

    什么是通过文字搜索的最简单的方法,并找到answesr的问题吗?莫非,抓住问号和下一个号码的工作之间的所有文字正则表达式?干杯。

    编辑:这是否有意义有丝毫的正则表达式? \\?([^]]+)\\[0-9]

    +2

    * “莫非抓住问号和下一个号码的工作之间的所有文字?正则表达式” *取决于内容。如果你确信你的答案将不包含任何数字,那么它将无法处理其他工作 –

    +0

    @anonymous 1甚至没有想到的是,有可能会出现数字插图中。怎么样只是检查是否有任何文本问题之间呢?到如果该人已根据您粘贴内容回答 –

    +0

    的指标,它看起来像你所有的问题与选项卡即开始'\ t'。两个标签之间的内容将文字回答你的问题。所以,你的答案会后'一切吗?'。尽管答案也可能有'?',但将是 –

    回答

    2

    如果你知道这个问题将永远是像(或类似)目前的格式,你已经证明,然后使用下面的模式可能工作,

    ^.+\?$|(.*) 
    

    模式发现所有的问题,然后抓住一切成了一团。它可能需要一些调整,以得到它捕捉到你想要什么,但是这可能是一个很好的起点。

    import re 
    
    regex = r"^.+\?$|(.*)" 
    
    result = re.findall(regex, test_str, re.MULTILINE) 
    
    if result: 
        for match in result: 
         print(match) 
    

    例如

    https://regex101.com/r/bweMiZ/2