我有一个巨大的文本文档,可以说1000多个单词,并且文本中的行太多。
我想获取特定单词的特定值。在我的示例中,单词是Teetotlar
,值是Yes
或No
示例文本:
我要和朋友们去参加聚会。我有很多朋友。他们是 所有参加聚会。我很高兴看到他们每个人。
我的许多朋友都喝酒,但如果你问他们你是酒鬼,他们 可能会回答是。
但这一切都很好。
我有以下适用的代码:
一个一行地读取所有行
检查十六指字
再次检查是“是”还是“否”,然后将该值保存在一个变量中
我想要的:
要有一个 regex ,它只检查整个文本中的单词Teetotlar
,然后在同一行中查找值Yes
或No
答案 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
的行,前者在后者之前。