使用文本文件中的正则表达式在Python中查找特定单词后面的单词

时间:2018-04-03 02:58:12

标签: python regex python-3.x

我是正则表达式的新手,我需要从文本文件中读取并在特定单词+字符后面找到一个单词。例如,文本文件的内容是:

天气现象:温和阳光34 明天天气:多云

我想在从文档doc中搜索关键字"Mildly-sunny34"后提取"Weather now"。我想确保除了":"这个词之外我还没有" ""Mildly-sunny34"个空格。

非常感谢任何有关解释的帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

这样做:

import re

# Open the file for reading
with open('file.txt') as fd:

    # Iterate over the lines
    for line in fd:

        # Capture one-or-more characters of non-whitespace after the initial match
        match = re.search(r'Weather now : (\S+)', line)

        # Did we find a match?
        if match:
            # Yes, process it
            weather = match.group(1)
            print('weather: {}'.format(weather))

由于您捕获的内容是由空格分隔的非空白,因此您只需使用\S+

  • \S是非空格 - 与\s相反,是空白
  • +表示前一个字符或字符类中的一个或多个

对于捕获组,组0对应于整个正则表达式,捕获的子组按顺序索引。由于我们只有一个子组,因此我们需要组1。

运行上述内容:

$ python extract.py 
weather: Mildly-sunny34