Tôi là người mới bắt đầu với cả Python và Regex, và tôi muốn biết cách tạo một chuỗi lấy các biểu tượng và thay thế chúng bằng khoảng trắng. Bất kỳ sự giúp đỡ là tuyệt vời.
Ví dụ:
how much for the maple syrup? $20.99? That's ricidulous!!!
into:
how much for the maple syrup 20 99 That s ridiculous
Khi được hỏi ngày 18 tháng 5 năm 2009 lúc 1:55May 18, 2009 at 1:55
2
Một cách, sử dụng các biểu thức thông thường:
>>> s = "how much for the maple syrup? $20.99? That's ridiculous!!!"
>>> re.sub[r'[^\w]', ' ', s]
'how much for the maple syrup 20 99 That s ridiculous '
4 sẽ phù hợp với các ký tự chữ và số và nhấn mạnhhow much for the maple syrup 20 99 That s ridiculous
5 sẽ phù hợp với bất cứ thứ gì không phải là chữ và sốhow much for the maple syrup 20 99 That s ridiculous
Đá xanh
7.7286 huy hiệu vàng31 Huy hiệu bạc51 Huy hiệu đồng6 gold badges31 silver badges51 bronze badges
Đã trả lời ngày 18 tháng 5 năm 2009 lúc 1:59May 18, 2009 at 1:59
dF.dF.dF.
72.3K29 Huy hiệu vàng128 Huy hiệu bạc135 Huy hiệu đồng29 gold badges128 silver badges135 bronze badges
5
Đôi khi phải mất nhiều thời gian hơn để tìm ra regex hơn là chỉ viết nó ra trong Python:
import string
s = "how much for the maple syrup? $20.99? That's ricidulous!!!"
for char in string.punctuation:
s = s.replace[char, ' ']
Nếu bạn cần các ký tự khác, bạn có thể thay đổi nó để sử dụng danh sách trắng hoặc mở rộng danh sách đen của bạn.
Danh sách trắng mẫu:
whitelist = string.letters + string.digits + ' '
new_s = ''
for char in s:
if char in whitelist:
new_s += char
else:
new_s += ' '
Danh sách trắng mẫu bằng cách sử dụng biểu thức máy phát:
whitelist = string.letters + string.digits + ' '
new_s = ''.join[c for c in s if c in whitelist]
Đã trả lời ngày 18 tháng 5 năm 2009 lúc 9:24May 18, 2009 at 9:24
Monkutmonkutmonkut
40.4K23 Huy hiệu vàng119 Huy hiệu bạc148 Huy hiệu đồng23 gold badges119 silver badges148 bronze badges
2
Tôi thường chỉ mở bảng điều khiển và tìm kiếm giải pháp trong các phương thức đối tượng. Thường thì nó đã ở đó:
>>> a = "hello ' s"
>>> dir[a]
[ [....] 'partition', 'replace' [....]]
>>> a.replace["'", " "]
'hello s'
Câu trả lời ngắn gọn: Sử dụng
how much for the maple syrup 20 99 That s ridiculous
6.
Nathan
3.7392 Huy hiệu vàng19 Huy hiệu bạc21 Huy hiệu đồng2 gold badges19 silver badges21 bronze badges
Đã trả lời ngày 18 tháng 5 năm 2009 lúc 5:45May 18, 2009 at 5:45
Busterbusterbuster
Huy hiệu vàng 95111 gold badge8 silver badges15 bronze badges
1
Đôi khi chúng tôi muốn loại bỏ tất cả các lần xuất hiện của một ký tự khỏi một chuỗi. Có hai cách phổ biến để đạt được điều này.
Python loại bỏ ký tự khỏi chuỗi
- Sử dụng hàm thay thế chuỗi []
- Sử dụng hàm dịch []
Python loại bỏ ký tự khỏi chuỗi bằng cách sử dụng thay thế []
Chúng ta có thể sử dụng hàm thay thế chuỗi [] để thay thế một ký tự bằng một ký tự mới. Nếu chúng tôi cung cấp một chuỗi trống làm đối số thứ hai, thì ký tự sẽ bị xóa khỏi chuỗi. Lưu ý rằng chuỗi là bất biến trong Python, vì vậy hàm này sẽ trả về một chuỗi mới và chuỗi ban đầu sẽ không thay đổi.
s = 'abc12321cba'
print[s.replace['a', '']]
Đầu ra:
how much for the maple syrup 20 99 That s ridiculous
7Python loại bỏ ký tự khỏi chuỗi bằng cách sử dụng dịch []
Chức năng Python Chuỗi dịch [] Thay thế từng ký tự trong chuỗi bằng bảng dịch đã cho. Chúng tôi phải chỉ định điểm mã Unicode cho ký tự và ‘không có cách thay thế để xóa nó khỏi chuỗi kết quả. Chúng ta có thể sử dụng hàm ord [] để có được điểm mã unicode của một ký tự.
s = 'abc12321cba'
print[s.translate[{ord['a']: None}]]
Đầu ra:
how much for the maple syrup 20 99 That s ridiculous
7 Nếu bạn muốn thay thế nhiều ký tự, điều đó có thể được thực hiện dễ dàng bằng cách sử dụng trình lặp. Hãy cùng xem cách loại bỏ các ký tự ‘A,’ B, và ‘C, khỏi một chuỗi.s = 'abc12321cba'
print[s.translate[{ord[i]: None for i in 'abc'}]]
Đầu ra:
how much for the maple syrup 20 99 That s ridiculous
9Loại bỏ khoảng trắng khỏi chuỗi
how much for the maple syrup 20 99 That s ridiculous
0Python loại bỏ dòng mới khỏi chuỗi
how much for the maple syrup 20 99 That s ridiculous
1Xóa con khỏi chuỗi
Chuỗi thay thế [] đối số hàm là chuỗi. Hãy để xem cách loại bỏ một từ khỏi một chuỗi.
how much for the maple syrup 20 99 That s ridiculous
2Đầu ra:
>>> s = "how much for the maple syrup? $20.99? That's ridiculous!!!"
>>> re.sub[r'[^\w]', ' ', s]
'how much for the maple syrup 20 99 That s ridiculous '
0Xóa số lần được chỉ định
Chúng tôi cũng có thể vượt qua tham số thứ ba trong hàm thay thế [] để chỉ định số lần thay thế nên được thực hiện.
how much for the maple syrup 20 99 That s ridiculous
3Đầu ra:
>>> s = "how much for the maple syrup? $20.99? That's ridiculous!!!"
>>> re.sub[r'[^\w]', ' ', s]
'how much for the maple syrup 20 99 That s ridiculous '
1Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.