Hướng dẫn python re split remove delimiter - python tách lại loại bỏ dấu phân cách

Vì vậy, tôi muốn chia văn bản này thành các câu.

s = "You! Are you Tom? I am Danny."

Vì vậy, tôi nhận được:

["You!", "Are you Tom?", "I am Danny."]

Đó là tôi muốn chia văn bản bằng regex '[.!\?]' mà không cần xóa các dấu phân cách. Cách pythonic nhất để đạt được điều này trong Python là gì?

Tôi nhận thức được những câu hỏi này:

JS String.Split [] mà không xóa các dấu phân cách

Python split [] mà không xóa dấu phân cách

Nhưng vấn đề của tôi có các phân định khác nhau [

["You!", "Are you Tom?", "I am Danny."]
0] làm phức tạp vấn đề.

wjandrea

25.2k8 Huy hiệu vàng53 Huy hiệu bạc74 Huy hiệu đồng8 gold badges53 silver badges74 bronze badges

Khi được hỏi ngày 29 tháng 5 năm 2017 lúc 14:11May 29, 2017 at 14:11

Bạn có thể sử dụng

["You!", "Are you Tom?", "I am Danny."]
1 với regex
["You!", "Are you Tom?", "I am Danny."]
2; Bộ định lượng lười biếng
["You!", "Are you Tom?", "I am Danny."]
3 đảm bảo mỗi mẫu khớp với dấu phân cách cụ thể mà bạn muốn khớp với:

import re

s = """You! Are you Tom? I am Danny."""
re.findall['.*?[.!\?]', s]
# ['You!', ' Are you Tom?', ' I am Danny.']

Đã trả lời ngày 29 tháng 5 năm 2017 lúc 14:17May 29, 2017 at 14:17

PsidompsidomPsidom

202K27 Huy hiệu vàng314 Huy hiệu bạc335 Huy hiệu đồng27 gold badges314 silver badges335 bronze badges

1

Nếu Python được hỗ trợ chia tách bởi các trận đấu có độ dài bằng không, bạn có thể đạt được điều này bằng cách khớp một chuỗi trống trước một trong các dấu phân cách:

[?> import re
>>> re.split[r'[?

Bài Viết Liên Quan

Chủ Đề