正则表达式代码,仅使用python从文本文件中获取第一行

时间:2019-07-03 06:45:19

标签: python regex

谁能提供给我正则表达式代码,以便仅在文本文件中打印数据的第一行?我正在使用间谍

我尝试了可能的解决方案,但它在每行中打印我的所有数据...最后一个帮助了我,但选择了两行。我只希望文本文件的第一行直到遇到换行符或文本从下一行开始为止。

import re

def getname(s):    
    nameregex=re.findall(r'^.*?[\.!\?](?:\s|$)',line)
    if len(nameregex)!=0:
        print(nameregex)


s = open('yesno.txt')     
for line in s:    
    getname(s)

在输出中,我得到前两行。 基本上,我只尝试打印大多数在第一行中的公司名称。

1 个答案:

答案 0 :(得分:1)

使用read()将文件读入变量,然后使用re.search进行匹配:

import re

def getname(s):    
    nameregex=re.search(r'^.*?[.!?](?!\S)', s)     # Run search with regex
    if nameregex:                                  # If there is a match 
        print(nameregex.group())                   # Get Group 0 - whole match - value


s = open('yesno.txt', 'r')                         # Open file handle to read it
contents = s.read()                                # Get all file contents
getname(contents)                                  # Run the getname method with the contents

See the Python demo

对正则表达式进行了一些修改,以避免最后出现空格。查看详细信息:

  • ^-字符串的开头
  • .*?-除换行符以外的任何0个或多个字符,应尽可能少
  • [.!?]-.!?字符
  • (?!\S)-此处必须有空格或字符串结尾。

请参见regex graph

enter image description here