код регулярного выражения для получения только первой строки из текстового файла с использованием Python - PullRequest
1 голос
/ 03 июля 2019

Может ли кто-нибудь предоставить мне код регулярного выражения для печати только первой строки данных в текстовом файле ???Я использую spyder

Я пробовал майские решения, но он печатает все мои данные в каждой строке ... Последний помог мне, но он выбрал две строки.я просто хочу, чтобы первая строка моего текстового файла только до тех пор, пока он не встретит разрыв строки или пока текст не начнется со следующей строки.

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 Ответ

1 голос
/ 03 июля 2019

Считайте файл в переменную, используя 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

См. Демонстрационную версию Python .

Регулярное выражение немного изменено, чтобы избежать пробелов в конце.Подробнее:

  • ^ - начало строки
  • .*? - любые 0 или более символов, кроме символов разрыва строки, как можно меньше
  • [.!?] - ., ! или ? char
  • (?!\S) - здесь должен быть пробел или конец строки.

См. график регулярных выражений :

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...