Python extract sentence containing word

后端 未结 6 1709
孤独总比滥情好
孤独总比滥情好 2020-12-09 10:52

I am trying to extract all the sentence containing a specified word from a text.

txt=\"I like to eat apple. Me too. Let\'s go buy some apples.\"
txt = \".\"         


        
6条回答
  •  借酒劲吻你
    2020-12-09 11:32

    In [7]: import re
    
    In [8]: txt=".I like to eat apple. Me too. Let's go buy some apples."
    
    In [9]: re.findall(r'([^.]*apple[^.]*)', txt)
    Out[9]: ['I like to eat apple', " Let's go buy some apples"]
    

    But note that @jamylak's split-based solution is faster:

    In [10]: %timeit re.findall(r'([^.]*apple[^.]*)', txt)
    1000000 loops, best of 3: 1.96 us per loop
    
    In [11]: %timeit [s+ '.' for s in txt.split('.') if 'apple' in s]
    1000000 loops, best of 3: 819 ns per loop
    

    The speed difference is less, but still significant, for larger strings:

    In [24]: txt = txt*10000
    
    In [25]: %timeit re.findall(r'([^.]*apple[^.]*)', txt)
    100 loops, best of 3: 8.49 ms per loop
    
    In [26]: %timeit [s+'.' for s in txt.split('.') if 'apple' in s]
    100 loops, best of 3: 6.35 ms per loop
    

提交回复
热议问题