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

使用python仅从文本文件中获取第一行的正则表达式代码,python,regex,Python,Regex,谁能给我提供只打印文本文件中第一行数据的正则表达式代码???我用的是spyder 我尝试过may的解决方案,但它在每一行打印我的所有数据……最后一行帮助了我,但它选择了两行。我只想要文本文件的第一行,直到它遇到换行符或文本从下一行开始 import re def getname(s): nameregex=re.findall(r'^.*?[\.!\?](?:\s|$)',line) if len(nameregex)!=0: print(namereg

谁能给我提供只打印文本文件中第一行数据的正则表达式代码???我用的是spyder

我尝试过may的解决方案,但它在每一行打印我的所有数据……最后一行帮助了我,但它选择了两行。我只想要文本文件的第一行,直到它遇到换行符或文本从下一行开始

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)
在输出中,我得到了前两行。
基本上,我只想打印公司名称,主要是在第一行。

使用
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

正则表达式经过了一些修改,以避免末尾出现空格。详情见:

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


“基本上,我只是想打印公司名称,而公司名称大部分都在第一行。”似乎你在这里要求的是一个不完整的解决方案。但是,如果您真的想这样做,为什么要阅读整个文件并将其正则化呢
open('yesno.txt')。readline().strip()
将读取第一行并抛出换行符<代码>将open('yesno.txt')作为infle:infle.readline().strip()
将执行相同的操作,但也会处理关闭文件句柄的操作,这是一种很好的做法。代码工作几乎正常,现在我得到的输出是“company name none”。我得到的是“none”“在公司之后name@Kartikaggarwal你可以,这取决于你的投入。我没有数据,你有。在输入中,我有下一行作为我的手机号码。@Kartikaggarwal太好了。那我该怎么帮你呢?兄弟,我的文本文件就像第一行:公司名称第二行:手机号码。。。。。。。我只想打印第一行,但我得到的输出是:公司名称没有人会真正感谢你对这个人的帮助