在Python中的特定单词后抓取是/否

时间:2018-12-21 10:06:48

标签: regex python-3.x

我有一个巨大的文本文档,可以说1000多个单词,并且文本中的行太多。

我想获取特定单词的特定值。在我的示例中,单词是Teetotlar,值是YesNo

示例文本:

  

我要和朋友们去参加聚会。我有很多朋友。他们是   所有参加聚会。我很高兴看到他们每个人。

     

我的许多朋友都喝酒,但如果你问他们你是酒鬼,他们   可能会回答是。

     

但这一切都很好。

我有以下适用的代码:

  1. 一个一行地读取所有行

  2. 检查十六指字

  3. 再次检查是“是”还是“否”,然后将该值保存在一个变量中

我想要的:

要有一个 regex ,它只检查整个文本中的单词Teetotlar,然后在同一行中查找值YesNo

1 个答案:

答案 0 :(得分:2)

这是一种方法:

SELECT country_name, name, name_count, rank
FROM (
    SELECT country_name, iso, name, name_count,
        @country_rank := IF( @current_country = iso, 
                             @country_rank + 1, 
                             1 
                           ) AS rank, 
        @current_country := iso 
    FROM (
        SELECT country_name, iso, name, COUNT(name) AS name_count
        FROM accounts
        JOIN country ON country.iso = accounts.iso3
        GROUP BY country.iso,  name
        ORDER BY country.iso ASC, name_count DESC
    ) AS ordered
) AS ranked
CROSS JOIN (SELECT @country_rank = 0, @current_country = '') AS vars
WHERE rank<=2;

这将使您检查line = "Many of my friends drink but if you ask them r you teetotlar, they would probably reply yes." m = re.search( r'\bteetotlar\b.*\b(?:yes|no)\b', line, re.M|re.I|re.DOTALL) if m: print "the line matches" teetotler的行,前者在后者之前。