Hướng dẫn how do you remove space before a period in python? - làm cách nào để xóa khoảng trắng trước dấu chấm trong python?

13

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Python Newbie tương đối ở đây. Tôi có một chuỗi văn bản đầu ra từ một chương trình tôi không thể sửa đổi. Để thảo luận, hãy nói:

text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"

Tôi muốn loại bỏ không gian trước khi chấm câu, nhưng không loại bỏ không gian thứ hai. Tôi đã cố gắng làm điều đó với Regex và tôi biết rằng tôi có thể khớp với các trường hợp tôi muốn sử dụng Match = '\ s [\?.! \ "] \ S' làm thuật ngữ tìm kiếm của tôi.

x=re.search('\s[\?\.\!\"]\s',text)

Có cách nào với một re.sub để thay thế thuật ngữ tìm kiếm bằng khoảng trắng hàng đầu bị loại bỏ không? Bất kỳ ý tưởng về cách tiến hành?

hỏi ngày 18 tháng 9 năm 2013 lúc 17:47Sep 18, 2013 at 17:47

Hướng dẫn how do you remove space before a period in python? - làm cách nào để xóa khoảng trắng trước dấu chấm trong python?

1

Đặt một nhóm xung quanh văn bản bạn muốn giữ và tham khảo nhóm đó theo số trong mẫu thay thế:

re.sub(r'\s([?.!"](?:\s|$))', r'\1', text)

Lưu ý rằng tôi đã sử dụng chuỗi RAW

x=re.search('\s[\?\.\!\"]\s',text)
1 để tránh phải sử dụng quá nhiều dấu gạch chéo ngược; Tuy nhiên, bạn không cần phải thêm rất nhiều.

Tôi cũng điều chỉnh trận đấu cho không gian sau; Bây giờ nó khớp với một không gian hoặc kết thúc của chuỗi.

Demo:

>>> import re
>>> text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"
>>> re.sub(r'\s([?.!"](?:\s|$))', r'\1', text)
"This text. Is to test. How it works! Will it! Or won't it? Hmm?"

Đã trả lời ngày 18 tháng 9 năm 2013 lúc 17:49Sep 18, 2013 at 17:49

Martijn Pieters ♦ Martijn PietersMartijn Pieters

992K276 Huy hiệu vàng3906 Huy hiệu bạc3254 Huy hiệu đồng276 gold badges3906 silver badges3254 bronze badges

4

Sử dụng

x=re.search('\s[\?\.\!\"]\s',text)
2 thay vì
x=re.search('\s[\?\.\!\"]\s',text)
3.

>>> text = "This text . Is to test . How it works ! Will it! Or won't it ? Hmm ?"
>>> re.sub(r'\s+([?.!"])', r'\1', text)
"This text. Is to test. How it works! Will it! Or won't it? Hmm?"

Bạn không cần phải trốn thoát

x=re.search('\s[\?\.\!\"]\s',text)
4,
x=re.search('\s[\?\.\!\"]\s',text)
5,
x=re.search('\s[\?\.\!\"]\s',text)
6,
x=re.search('\s[\?\.\!\"]\s',text)
7 bên trong
x=re.search('\s[\?\.\!\"]\s',text)
8 Becaue Các nhân vật đặc biệt mất ý nghĩa của chúng bên trong
x=re.search('\s[\?\.\!\"]\s',text)
8.

Đã trả lời ngày 18 tháng 9 năm 2013 lúc 17:49Sep 18, 2013 at 17:49

Martijn Pieters ♦ Martijn Pietersfalsetru

992K276 Huy hiệu vàng3906 Huy hiệu bạc3254 Huy hiệu đồng58 gold badges688 silver badges610 bronze badges

2

Dữ liệu văn bản thô thường không được định dạng đúng và chứa nhiều khoảng trắng dự phòng ở đầu và cuối chuỗi cũng như các ký tự trống kép trong văn bản.

Trong hướng dẫn sau đây, tôi sẽ giải thích cách loại bỏ các không gian như vậy khỏi một chuỗi trong Python. Trước tiên, hãy xem xét các kịch bản có thể có:

Hướng dẫn how do you remove space before a period in python? - làm cách nào để xóa khoảng trắng trước dấu chấm trong python?

Như bạn có thể thấy trong đồ họa, chúng ta có thể loại bỏ các khoảng trống ở đầu và kết thúc (xem Ví dụ 1); chỉ ở cuối (xem ví dụ 2); chỉ ở đầu (xem Ví dụ 3); Không gian trùng lặp (xem ví dụ 4); và tất cả các không gian (xem Ví dụ 5).

Vì vậy, nếu bạn muốn tìm hiểu thêm về việc loại bỏ khoảng trắng, hãy tiếp tục đọc

Ví dụ 1: Xóa khoảng trắng từ đầu và cuối chuỗi trong python (chức năng dải)

Hãy xem xét chuỗi ví dụ sau trong Python (tức là Python 3):

my_string = "  This   sentence    contains many redundant    whitespaces    !!!  "

Chuỗi ví dụ của chúng tôi chứa một câu có khoảng trắng ở đầu và cuối (cũng như hai không gian kép trong chuỗi, nhưng nhiều hơn về sau đó).

Để cắt tất cả các không gian trước và sau bản án của chúng tôi, chúng tôi có thể sử dụng chức năng dải trong Python:

my_string_1 = my_string.strip()                          # Apply strip function
print(my_string_1)                                       # Print updated string
# "This   sentence    contains many redundant    whitespaces    !!!"

Dễ dàng Breezy! Vậy điều gì sẽ xảy ra nếu chúng ta chỉ muốn loại bỏ các khoảng trống ở bên phải hoặc bên trái của chuỗi của chúng ta? Đó là những gì tôi sẽ cho bạn thấy trong ví dụ 2 và 3!

Ví dụ 2: Trim Whitespace ở phía bên phải của Chuỗi (Hàm Rstrip)

Với chức năng dải Python, chúng tôi có thể xóa tất cả các không gian bên trái và bên phải (như trong ví dụ 1). Tuy nhiên, đôi khi bạn có thể muốn giữ khoảng trắng ở đầu và chỉ loại bỏ không gian ở cuối.

Đối với nhiệm vụ này, chúng ta có thể sử dụng chức năng Rstrip Python:

my_string_2 = my_string.rstrip()                         # Apply rstrip function
print(my_string_2)                                       # Print updated string
# "  This   sentence    contains many redundant    whitespaces    !!!"

Hãy xem các trích dẫn ở cuối câu của chúng tôi: chúng tôi đã loại bỏ tất cả các không gian theo dõi, nhưng giữ không gian ngay từ đầu.

Vì vậy, chúng ta có thể làm điều đó theo cách khác không? Vì chúng ta có thể…

Ví dụ 3: Xóa khoảng trống ở phía bên trái của chuỗi (hàm Lstrip)

Để loại bỏ không gian hàng đầu trước một câu, chúng ta có thể sử dụng lệnh Lstrip (chính xác như chúng ta đã làm trước đây với Rstrip):

my_string_3 = my_string.lstrip()                         # Apply lstrip function
print(my_string_3)                                       # Print updated string
# "This   sentence    contains many redundant    whitespaces    !!!  "

Đó là nó! Nhưng ở lại với tôi, chúng ta vẫn cần phải loại bỏ các không gian dư thừa trong văn bản

Ví dụ 4: Cách xóa thêm không gian giữa văn bản trong Python (hoạt động Re.Sub)

Cho đến nay, chúng tôi chỉ sử dụng các chức năng của gia đình thoát y. Tuy nhiên, để loại bỏ các ký tự trống trùng lặp giữa các từ trong câu của chúng tôi, chúng tôi cần áp dụng hoạt động Re.Sub:

import re                                                # Import regular expressions
my_string_4 = re.sub(" +", " ",my_string)                # Apply sub function
print(my_string_4)                                       # Print updated string
# " This sentence contains many redundant whitespaces !!! "

Bạn muốn trích xuất nhiều khoảng trắng hơn ?! Như chỉ thị…

Ví dụ 5: Loại bỏ tất cả khoảng trắng (chức năng thay thế)

Để xóa tất cả các khoảng trắng của văn bản của chúng tôi, chúng tôi có thể áp dụng chức năng thay thế:

x=re.search('\s[\?\.\!\"]\s',text)
0

Điều đó không có ý nghĩa gì trong trường hợp cụ thể của chúng tôi mặc dù 😉

VIDEO: Ví dụ về khoảng trắng bổ sung & Cách loại bỏ dấu chấm câu trong Python

Bạn có cần thêm một vài ví dụ cho chức năng dải Python (xem thêm ví dụ 1-3 của hướng dẫn này) không? Sau đó, hãy xem video YouTube sau đây của Ethan Weed. Trong video, anh ta đang đưa ra nhiều ví dụ hơn cho chức năng dải và cũng giải thích cách dải dấu chấm câu. Các ví dụ được hiển thị trực tiếp trong phần mềm lập trình Python.

Đọc thêm

  • Cách xóa newline khỏi chuỗi
  • Ngôn ngữ lập trình Python

Làm thế nào để bạn loại bỏ không gian và dấu câu trong Python?

Một trong những cách dễ nhất để loại bỏ dấu câu từ một chuỗi trong python là sử dụng phương thức str.translate ().Phương thức dịch () thường lấy một bảng dịch, mà chúng ta sẽ sử dụng.Phương pháp maketrans ().use the str. translate() method. The translate() method typically takes a translation table, which we'll do using the . maketrans() method.

Làm thế nào để bạn tước một không gian trong Python?

Sử dụng phương thức .Strip () để loại bỏ khoảng trắng và các ký tự từ đầu và phần cuối của chuỗi.Sử dụng .Phương thức lStrip () để loại bỏ khoảng trắng và ký tự chỉ từ đầu chuỗi. strip() method to remove whitespace and characters from the beginning and the end of a string. Use the . lstrip() method to remove whitespace and characters only from the beginning of a string.

Làm thế nào để bạn in mà không có dung lượng trong Python?

Giải pháp với đối số phân tách Để in nhiều giá trị hoặc biến mà không có ký tự không gian đơn mặc định ở giữa, sử dụng hàm print () với đối số từ khóa phân tách tùy chọn SEP và đặt nó thành chuỗi trống ''.use the print() function with the optional separator keyword argument sep and set it to the empty string '' .