选择特定字符串python后如何打印前一个字符串

时间:2016-05-28 12:44:58

标签: python regex search keyword matching

我想找到一个出现在关键字之前的单词(由我指定和搜索)并打印出结果。我试过下面的代码,但它给了我之前没有的话......

    str = "Phone has better display, good speaker. Phone has average display"
    p1 = re.search(r"(display>=?)(.*)", str)
    if p1 is None:
       return None
    return p1.groups()

这段代码给了我

    , good speaker. Phone has average display

但我只想要

    better,average

2 个答案:

答案 0 :(得分:2)

您可以使用findall而不是search使用正向前瞻:

>>> p = re.compile(r'(\w+)\s+(?=display)')
>>> p.findall(str)
['better', 'average']

答案 1 :(得分:0)

您可以使用正向前瞻断言?=

import re

str = "Phone has better display, good speaker. Phone has average display"
p1 = re.findall(r"(\w+)\s*(?=display)", str)
print(p1)
# ['better', 'average']

\w表示单词字符。