Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Tôi có chuỗi lớn mà tôi chia theo dòng mới. Làm thế nào tôi có thể loại bỏ tất cả các dòng trống, (chỉ có khoảng trắng)?

Mã giả:

for stuff in largestring:
   remove stuff that is blank

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

VIFI

9351 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng1 gold badge10 silver badges24 bronze badges

Được hỏi ngày 14 tháng 9 năm 2010 lúc 18:35Sep 14, 2010 at 18:35

2

Hãy thử danh sách hiểu và

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
8:

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:45Sep 14, 2010 at 18:45

Gimelgimelgimel

80.6K10 Huy hiệu vàng74 Huy hiệu bạc104 Huy hiệu đồng10 gold badges74 silver badges104 bronze badges

1

Sử dụng Regex:

if re.match(r'^\s*$', line):
    # line is empty (has only the following: \t\n\r and whitespace)

Sử dụng regex +

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
9:

filtered = filter(lambda x: not re.match(r'^\s*$', x), original)

Như đã thấy trên Codepad.

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:38Sep 14, 2010 at 18:38

NulluserexceptionnulluserexceptionNullUserException

82.3K27 Huy hiệu vàng206 Huy hiệu bạc231 Huy hiệu Đồng27 gold badges206 silver badges231 bronze badges

3

Tôi cũng đã thử các giải pháp Regexp và List, và liệt kê một là nhanh hơn.list one is faster.

Đây là giải pháp của tôi (theo câu trả lời trước):

text = "\n".join([ll.rstrip() for ll in original_text.splitlines() if ll.strip()])

Đã trả lời ngày 12 tháng 7 năm 2013 lúc 8:24Jul 12, 2013 at 8:24

RegiszregiszRegisz

4518 Huy hiệu bạc15 Huy hiệu Đồng8 silver badges15 bronze badges

0

lines = bigstring.split('\n')
lines = [line for line in lines if line.strip()]

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:45Sep 14, 2010 at 18:45

Gimelgimelnmichaels

80.6K10 Huy hiệu vàng74 Huy hiệu bạc104 Huy hiệu đồng12 gold badges102 silver badges133 bronze badges

4

Sử dụng Regex:

>>> import re
>>> a = "Foo\n \nBar\nBaz\n\n   Garply\n  \n"
>>> print a
Foo

Bar
Baz

        Garply


>>> print(re.sub(r'\n\s*\n','\n',a,re.MULTILINE))
Foo
Bar
Baz
        Garply

>>> 

Sử dụng regex +

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
9:May 17, 2018 at 18:45

Như đã thấy trên Codepad.mushuweasel

Đã trả lời ngày 14 tháng 9 năm 2010 lúc 18:387 silver badges7 bronze badges

1

Nulluserexceptionnulluserexception

s.replace('\n\n','\n')

82.3K27 Huy hiệu vàng206 Huy hiệu bạc231 Huy hiệu Đồng

s.replace('\n\n','\n').replace('\n\n','\n')

Tôi cũng đã thử các giải pháp Regexp và List, và liệt kê một là nhanh hơn.
• Regular Expressions (Regex) Tutorial
• Python Tutorial: re Module

Đây là giải pháp của tôi (theo câu trả lời trước):Sep 1, 2015 at 17:54

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Đã trả lời ngày 12 tháng 7 năm 2013 lúc 8:24Ooker

Regiszregisz3 gold badges25 silver badges50 bronze badges

4

4518 Huy hiệu bạc15 Huy hiệu Đồng

    for stuff in largestring:
        print(stuff.rstrip("\n")

NmichaelsnmichaelsApr 11, 2019 at 10:27

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

48.3K12 Huy hiệu vàng102 Huy hiệu bạc133 Huy hiệu đồng

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
0

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Đáng ngạc nhiên là một re.sub đa dòng chưa được đề xuất (OH, vì bạn đã chia chuỗi của mình ... nhưng tại sao?):

Đã trả lời ngày 17 tháng 5 năm 2018 lúc 18:4550 gold badges482 silver badges561 bronze badges

MushuweaselmushuweaselNov 22, 2018 at 13:26

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

6047 Huy hiệu bạc7 Huy hiệu đồng

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
1

Nếu bạn không sẵn sàng thử Regex (mà bạn nên), bạn có thể sử dụng điều này:Sep 10, 2015 at 12:49

Lặp lại điều này nhiều lần để đảm bảo không còn dòng trống. Hoặc chuỗi các lệnh:Radren

Chỉ để khuyến khích bạn sử dụng Regex, đây là hai video giới thiệu mà tôi tìm thấy trực quan: • Hướng dẫn biểu thức chính quy (Regex) • Hướng dẫn Python: RE Mô -đun4 silver badges6 bronze badges

Đã trả lời ngày 1 tháng 9 năm 2015 lúc 17:54

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
2

Ookerooker

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
3

1.4493 huy hiệu vàng25 Huy hiệu bạc 50 Huy hiệu Đồng

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
4

Bạn có thể chỉ cần sử dụng RSTRIP:Jul 7, 2021 at 10:06

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Đã trả lời ngày 11 tháng 4 năm 2019 lúc 10:27Kxrr

Tôi sử dụng giải pháp này để xóa các dòng trống và kết hợp mọi thứ lại với nhau như một dòng:5 silver badges13 bronze badges

1

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
5

Output:

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
6

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Cody Grey ♦

Phim thương hiệu vàng 234K50482 Huy hiệu bạc561 Huy hiệu đồng5 gold badges10 silver badges19 bronze badges

Đã trả lời ngày 22 tháng 11 năm 2018 lúc 13:26Dec 16, 2021 at 5:53

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Phiên bản của tôi:

>>> mystr = "L1\nL2\n\nL3\nL4\n  \n\nL5"
>>> mystr.split('\n')
['L1', 'L2', '', 'L3', 'L4', '  ', '', 'L5']
>>> [line for line in mystr.split('\n') if line.strip() != '']
['L1', 'L2', 'L3', 'L4', 'L5']
7

Đã trả lời ngày 10 tháng 9 năm 2015 lúc 12:49May 24, 2017 at 19:07

Hướng dẫn remove empty lines using regex python - xóa các dòng trống bằng cách sử dụng regex python

Reihan_amnReihan_amnReihan_amn

Radrenradren2 gold badges19 silver badges20 bronze badges

Làm thế nào để bạn xóa tất cả các dòng trống trong regex?

Trong cửa sổ thay thế, trong phần tìm phần nào, gõ ^\ n (Caret, Backslash 'n') và để trống thay thế, trừ khi bạn muốn thay thế một dòng trống bằng văn bản khác.Kiểm tra hộp biểu thức thông thường.Nhấp vào nút Thay thế tất cả để thay thế tất cả các dòng trống., unless you want to replace a blank line with other text. Check the Regular Expression box. Click the Replace All button to replace all blank lines.

Làm thế nào để bạn thoát khỏi các dòng trống trong Python?

Tập tin TXT trong Python.Chúng ta có thể loại bỏ các dòng trống từ a.Tệp TXT bằng cách sử dụng hàm Dải ().Dải (): Chức năng Dải () kiểm tra xem có trống và đuôi không gian hay không gian, loại bỏ các không gian đó và trả về ký tự.using the strip() function. strip(): strip() function checks whether there is a leading and tailing blank or spaces, removes those spaces, and returns the character.

Làm thế nào để bạn loại bỏ các dòng trống trong java?

thay thế ("^[| \ t]*\ n $", "");