Kể từ khi re.sub()
trả về toàn bộ chuỗi đã sửa đổi/chưa sửa đổi, có cách nào để kiểm tra xem re.sub()
đã sửa đổi thành công văn bản mà không tìm kiếm kết quả của re.sub()
không?Làm thế nào để kiểm tra xem re.sub() đã thay thế thành công trong python chưa?
Trả lời
Nếu bạn có đoạn mã sau:
import re
s1 = "aaa"
result = re.sub("a", "b", s1)
Bạn có thể kiểm tra xem các cuộc gọi đến phụ làm subsitutions bằng cách so sánh id của kết quả để S1 như vậy:
id(s1) == id(result)
hay, đó là giống nhau:
s1 is result
Điều này là do các chuỗi trong python là không thay đổi, vì vậy nếu có bất kỳ thay thế nào e thực hiện, kết quả sẽ là một chuỗi khác với gốc (ví dụ: chuỗi gốc không đổi). Lợi thế của việc sử dụng các id để so sánh hơn là nội dung của các chuỗi là so sánh là thời gian không đổi thay vì tuyến tính.
Không thể hiểu được downvotes. Tôi xác nhận điều này để làm việc. Điều này thậm chí còn được ghi lại: "Nếu không tìm thấy mẫu, chuỗi được trả về không thay đổi". Vâng, nó không rõ ràng nói "cùng một đối tượng", vì vậy nó _might_ phá vỡ đôi khi, nhưng nếu OP là chết đặt trên tránh so sánh, đây là tốt nhất chúng tôi có thể cung cấp. –
're.sub (s1," a "," b ")' không có ý nghĩa trong ngữ cảnh câu trả lời của bạn –
Padric, cảm ơn tôi đã thay đổi câu trả lời để phản ánh điều này – Jon
Bạn có thể sử dụng re.subn
mà thực hiện các hoạt động tương tự như sub(), nhưng trả về một tuple (new_string, number_of_subs_made)
Nếu số sửa đổi là 0
ví dụ: chuỗi không được sửa đổi.
>>> re.subn('(xx)+', '', 'abcdab')
('abcdab', 0)
>>> re.subn('(ab)+', '', 'abcdab')
('cd', 2)
>>>
Cảm ơn Praveen, điều này cung cấp thông tin về sửa đổi. –
- 1. Làm thế nào để kiểm tra xem một sợi đã hoàn thành trong Rust chưa?
- 2. Làm thế nào để kiểm tra xem ssh-agent đã chạy trong bash chưa?
- 3. Làm thế nào để kiểm tra xem tôi đã đạt đến cuối chuỗi trong Java chưa?
- 4. Làm thế nào để kiểm tra xem công việc trong hàng đợi Beanstalkd đã được hoàn thành trong Laravel
- 5. Làm cách nào để kiểm tra xem chèn đã thành công với MySQLdb bằng Python?
- 6. Làm thế nào để kiểm tra xem hình ảnh đã được tải bằng Javascript chưa?
- 7. Làm thế nào để kiểm tra xem một FB AppRequest đã được nhấp vào hay chưa?
- 8. Làm thế nào để kiểm tra xem tai nghe đã được cắm vào hay chưa?
- 9. Làm thế nào để bạn kiểm tra xem một trường hợp realm đã được đóng chưa?
- 10. Làm thế nào để kiểm tra xem phiên đường ray đã được tải chưa?
- 11. Làm thế nào để kiểm tra xem một nguồn cấp dữ liệu RSS đã được cập nhật bằng Python chưa?
- 12. Python Selenium: Cách kiểm tra xem WebDriver đã thoát() chưa?
- 13. Python làm thế nào để thay thế dấu chéo ngược với re.sub()
- 14. Cách kiểm tra xem thư đã được gửi thành công chưa
- 15. C# - làm thế nào để kiểm tra xem một quá trình được bắt đầu thành công
- 16. Làm thế nào để kiểm tra xem System.IO.File.Delete xóa một tập tin thành công
- 17. Kiểm tra xem giá trị nguyên đã tăng chưa?
- 18. Làm thế nào để kiểm tra các thành viên chưa sử dụng trong cấu trúc?
- 19. Có cách nào để kiểm tra xem thành phần phản ứng đã được tháo chưa?
- 20. Làm thế nào để kiểm tra xem biến trong một lớp khác đã được cập nhật chưa?
- 21. Làm cách nào để kiểm tra xem biến `let` đã được khai báo trên ES6 chưa?
- 22. Làm cách nào để kiểm tra xem CGPoint đã được khởi tạo chưa?
- 23. Làm cách nào để kiểm tra xem jQuery đã có trong bộ nhớ cache chưa?
- 24. Trong JQuery, làm cách nào để kiểm tra xem DOM đã sẵn sàng chưa?
- 25. Làm cách nào để kiểm tra xem thiết bị USB đã được cắm chưa?
- 26. Làm cách nào để kiểm tra xem session_start đã được nhập chưa?
- 27. Cách kiểm tra xem một viewStub đã tăng cao chưa?
- 28. Làm thế nào để kiểm tra xem có sự thay đổi từ Nil trong RSpec
- 29. Làm thế nào tôi có thể kiểm tra nếu một tập tin ghi đã thành công trong PHP?
- 30. Làm cách nào để kiểm tra xem biến đã được khởi tạo chưa
Tại sao nó không thay thế chính xác. Bạn có thể kiểm tra chuỗi cho regex bằng 're.match()' trước khi bạn muốn biết nếu có bất kỳ kết quả khớp nào bên trong. – nipeco
Tôi cho rằng câu hỏi có nghĩa là: "làm thế nào bạn có thể biết liệu re.sub() có thay thế hay không" – Jon
Bạn đang thực sự cố gắng làm gì? –