Tôi đang cố gắng thực hiện mọi thứ sau thẻ text_after = re.sub(regex_search_term, regex_replacement, text_before) 3 và xóa nó, nhưng mã của tôi dường như không làm gì cả. text_after = re.sub(regex_search_term, regex_replacement, text_before) 4 không hỗ trợ Regex?
z.write(article.replace('</html>.+', '</html>'))
hỏi ngày 13 tháng 7 năm 2012 lúc 18:03Jul 13, 2012 at 18:03
user1442957user1442957user1442957
6.6635 huy hiệu vàng21 Huy hiệu bạc19 Huy hiệu đồng5 gold badges21 silver badges19 bronze badges
4
Không. Biểu thức chính quy trong Python được xử lý bởi mô -đun text_after = re.sub(regex_search_term, regex_replacement, text_before) 5.
article = re.sub(r'(?is)</html>.+', '</html>', article)Nói chung:
text_after = re.sub(regex_search_term, regex_replacement, text_before)
Thomas Weller
51.9K19 Huy hiệu vàng120 Huy hiệu bạc203 Huy hiệu đồng19 gold badges120 silver badges203 bronze badges
Đã trả lời ngày 13 tháng 7 năm 2012 lúc 18:05Jul 13, 2012 at 18:05
4
Để thay thế văn bản bằng cách sử dụng biểu thức thông thường, hãy sử dụng chức năng Re.Sub:
Sub (mẫu, repl, chuỗi [, đếm, cờ])
Nó sẽ thay thế các trường hợp không phải là không cần thiết của text_after = re.sub(regex_search_term, regex_replacement, text_before) 6 bằng văn bản được truyền là text_after = re.sub(regex_search_term, regex_replacement, text_before) 7. Ví dụ, nếu bạn cần phân tích trận đấu để trích xuất thông tin về các bản ghi nhóm cụ thể, bạn có thể chuyển một hàm cho đối số text_after = re.sub(regex_search_term, regex_replacement, text_before) 7. Thông tin thêm ở đây.
Ví dụ
>>> import re >>> re.sub(r'a', 'b', 'banana') 'bbnbnb' >>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435') '/andre/{id}/abobora/{id}'Đã trả lời ngày 3 tháng 1 năm 2017 lúc 16:02Jan 3, 2017 at 16:02
Andre Penaandre PenaAndre Pena
54,4K45 Huy hiệu vàng189 Huy hiệu bạc230 Huy hiệu đồng45 gold badges189 silver badges230 bronze badges
Bạn có thể sử dụng mô -đun text_after = re.sub(regex_search_term, regex_replacement, text_before) 5 cho regexes, nhưng regexes có lẽ là quá mức cần thiết cho những gì bạn muốn. Tôi có thể thử một cái gì đó như
z.write(article[:article.index("</html>") + 7]Điều này sạch hơn nhiều, và sẽ nhanh hơn nhiều so với một giải pháp dựa trên regex.
Đã trả lời ngày 13 tháng 7 năm 2012 lúc 19:01Jul 13, 2012 at 19:01
5
Đối với trường hợp cụ thể này, nếu sử dụng mô -đun text_after = re.sub(regex_search_term, regex_replacement, text_before) 5 là quá mức cần thiết, làm thế nào về việc sử dụng phương pháp >>> import re >>> re.sub(r'a', 'b', 'banana') 'bbnbnb' >>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435') '/andre/{id}/abobora/{id}' 1 (hoặc >>> import re >>> re.sub(r'a', 'b', 'banana') 'bbnbnb' >>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435') '/andre/{id}/abobora/{id}' 2)
se='</html>' z.write(article.split(se)[0]+se)Ví dụ,
#!/usr/bin/python article='''<html>Larala Ponta Monta </html>Kurimon Waff Moff ''' z=open('out.txt','w') se='</html>' z.write(article.split(se)[0]+se)đầu ra >>> import re >>> re.sub(r'a', 'b', 'banana') 'bbnbnb' >>> re.sub(r'/\d+', '/{id}', '/andre/23/abobora/43435') '/andre/{id}/abobora/{id}' 3 như
<html>Larala Ponta Monta </html>Đã trả lời ngày 24 tháng 6 năm 2017 lúc 20:08Jun 24, 2017 at 20:08
norionorionorio
3.5302 Huy hiệu vàng24 Huy hiệu bạc33 Huy hiệu Đồng2 gold badges24 silver badges33 bronze badges
Cập nhật lần cuối vào ngày 20 tháng 10 năm 2022 lúc 12:50 tối
Python có một mô-đun biểu thức chính quy tích hợp có tên là re & nbsp; có nhiều chức năng khác nhau cho các mẫu, ký tự, ký tự đặc biệt hoặc biểu thức.re that has various functions for patterns, characters, special characters, or expressions.
Để thay thế một chuỗi phù hợp với regex thay vì kết hợp hoàn hảo, hãy sử dụng pythonre.sub (). & Nbsp; re.sub () là một phương thức tích hợp chấp nhận năm đối số và trả về các chuỗi thay thế.replace a string that matches the regex instead of a perfect match, use the Python re.sub(). The re.sub() is a built-in method that accepts the maximum five arguments and returns replaced strings.
Sử dụng phương thức String Stretic () để thay thế chuỗi; Chuỗi mới sẽ được thay thế để khớp hoàn toàn chuỗi cũ.
Python Regex Sub ()
Chức năng Python re.sub () trong mô -đun RE có thể thay thế các chuỗi con. Để sử dụng phương thức Sub (), trước tiên, chúng ta phải nhập mô -đun RE và sau đó chúng ta có thể sử dụng phương thức Sub () của nó. function in the re module can replace substrings. To use the sub() method, first, we have to import the re module, and then we can use its sub() method.
Cú pháp
re.sub(pattern, repl, string, count=0, flags=0)Xem mã sau.
import re str = '' print(re.sub('[a-z]*@', 'ApD@', str))Trong ví dụ trên, chúng tôi cố gắng thay thế các trường hợp chữ nhỏ từ A đến Z trước khi @ ký tự.
Xem đầu ra.
article = re.sub(r'(?is)</html>.+', '</html>', article) 0Từ đầu ra, chúng ta có thể thấy rằng chúng ta đã cập nhật thành công các địa chỉ email.
Chỉ định số lượng
Chúng ta có thể vượt qua một tham số đếm trong phương thức REGEX SUB (). Nó gợi ý cho trình biên dịch mà vui lòng không thay thế nhiều hơn giá trị đếm.t suggests to the compiler that please don’t replace more than the count’s value.
article = re.sub(r'(?is)</html>.+', '</html>', article) 1Đầu ra
article = re.sub(r'(?is)</html>.+', '</html>', article) 2Đầu ra cho thấy nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy.
Thay thế nhiều chuỗi con bằng chuỗi chính xác
Bạn có thể gửi kèm chuỗi với [] để phù hợp với bất kỳ ký tự đơn. Nó có thể được sử dụng để thay thế nhiều ký tự khác nhau bằng cùng một chuỗi.
article = re.sub(r'(?is)</html>.+', '</html>', article) 3Đầu ra
article = re.sub(r'(?is)</html>.+', '</html>', article) 2Đầu ra cho thấy nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy.
Thay thế nhiều chuỗi con bằng chuỗi chính xác
Bạn có thể gửi kèm chuỗi với [] để phù hợp với bất kỳ ký tự đơn. Nó có thể được sử dụng để thay thế nhiều ký tự khác nhau bằng cùng một chuỗi.
article = re.sub(r'(?is)</html>.+', '</html>', article) 5Bạn có thể thấy rằng nó thay thế cùng một chuỗi bằng nhiều chuỗi con.
Nếu | phân định các mẫu, nó phù hợp với bất kỳ mẫu. Ngoài ra, có thể sử dụng các ký tự đặc biệt của biểu thức chính quy cho từng mẫu, nhưng nó ổn ngay cả khi chuỗi thông thường được chỉ định.
Đầu ra
article = re.sub(r'(?is)</html>.+', '</html>', article) 2Đầu ra cho thấy nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy.
Thay thế nhiều chuỗi con bằng chuỗi chính xác
article = re.sub(r'(?is)</html>.+', '</html>', article) 5Đầu ra
article = re.sub(r'(?is)</html>.+', '</html>', article) 2Đầu ra cho thấy nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy.
Thay thế nhiều chuỗi con bằng chuỗi chính xác
Bạn có thể gửi kèm chuỗi với [] để phù hợp với bất kỳ ký tự đơn. Nó có thể được sử dụng để thay thế nhiều ký tự khác nhau bằng cùng một chuỗi.
Bạn có thể thấy rằng nó thay thế cùng một chuỗi bằng nhiều chuỗi con.
article = re.sub(r'(?is)</html>.+', '</html>', article) 9Đầu ra
Đầu ra cho thấy nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy.Thay thế nhiều chuỗi con bằng chuỗi chính xác
Bạn có thể gửi kèm chuỗi với [] để phù hợp với bất kỳ ký tự đơn. Nó có thể được sử dụng để thay thế nhiều ký tự khác nhau bằng cùng một chuỗi.
Bạn có thể thấy rằng nó thay thế cùng một chuỗi bằng nhiều chuỗi con.
Nếu | phân định các mẫu, nó phù hợp với bất kỳ mẫu. Ngoài ra, có thể sử dụng các ký tự đặc biệt của biểu thức chính quy cho từng mẫu, nhưng nó ổn ngay cả khi chuỗi thông thường được chỉ định.
text_after = re.sub(regex_search_term, regex_replacement, text_before) 1Đầu ra
text_after = re.sub(regex_search_term, regex_replacement, text_before) 2Đầu ra cho thấy nó chỉ thay thế hai địa chỉ email và địa chỉ cuối cùng là như vậy.
Thay thế nhiều chuỗi con bằng chuỗi chính xác