74
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.
Tôi muốn xóa tất cả các URL bên trong một chuỗi [thay thế chúng bằng ""] Tôi đã tìm kiếm xung quanh nhưng thực sự không thể tìm thấy thứ tôi muốn.
Example:
text1
text2
//url.com/bla1/blah2/
text3
text4
//url.com/bla2/blah2/
text5
text6
//url.com/bla3/blah3/
Tôi muốn kết quả là:
text1
text2
text3
text4
text5
text6
hỏi ngày 4 tháng 7 năm 2012 lúc 15:30Jul 4, 2012 at 15:30
3
cách ngắn nhất
re.sub[r'http\S+', '', stringliteral]
Đã trả lời ngày 26 tháng 11 năm 2016 lúc 21:01Nov 26, 2016 at 21:01
Tolgayilmaztolgayilmaztolgayilmaz
3.7472 Huy hiệu vàng19 Huy hiệu bạc18 Huy hiệu đồng2 gold badges19 silver badges18 bronze badges
6
Kịch bản Python:
import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
Output:
text1
text2
text3
text4
text5
text6
Kiểm tra mã này ở đây.
Đã trả lời ngày 4 tháng 7 năm 2012 lúc 16:15Jul 4, 2012 at 16:15
MegaΩmegaΩmega
41.2K32 Huy hiệu vàng126 Huy hiệu bạc194 Huy hiệu đồng32 gold badges126 silver badges194 bronze badges
1
Điều này làm việc cho tôi:
import re
thestring = "text1\ntext2\n//url.com/bla1/blah2/\ntext3\ntext4\n//url.com/bla2/blah2/\ntext5\ntext6"
URLless_string = re.sub[r'\w+:\/{2}[\d\w-]+[\.[\d\w-]+]*[?:[?:\/[^\s/]*]]*', '', thestring]
print URLless_string
Result:
text1
text2
text3
text4
text5
text6
Đã trả lời ngày 4 tháng 7 năm 2012 lúc 16:12Jul 4, 2012 at 16:12
TahatahaTaha
1.5122 Huy hiệu vàng18 Huy hiệu bạc24 Huy hiệu đồng2 gold badges18 silver badges24 bronze badges
Loại bỏ các liên kết/URL HTTP trộn lẫn trong bất kỳ văn bản nào:
import re
re.sub[r'''[?i]\b[[?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/][?:[^\s[]]+|\[[[^\s[]]+|[\[[^\s[]]+\]]]*\]]+[?:\[[[^\s[]]+|[\[[^\s[]]+\]]]*\]|[^\s`![]\[\]{};:'".,?«»“”‘’]]]''', " ", text]
Đã trả lời ngày 26 tháng 4 năm 2018 lúc 6:48Apr 26, 2018 at 6:48
PranzellpranzellPranzell
2.08815 huy hiệu bạc21 Huy hiệu đồng15 silver badges21 bronze badges
2
Giải pháp này phục vụ cho HTTP, HTTPS và các ký tự đặc biệt loại URL bình thường khác:
import re
def remove_urls [vTEXT]:
vTEXT = re.sub[r'[https|http]?:\/\/[\w|\.|\/|\?|\=|\&|\%]*\b', '', vTEXT, flags=re.MULTILINE]
return[vTEXT]
print[ remove_urls["this is a test //sdfs.sdfsdf.com/sdfsdf/sdfsdf/sd/sdfsdfs?bob=%20tree&jef=man lets see this too //sdfsdf.fdf.com/sdf/f end"]]
Đã trả lời ngày 21 tháng 7 năm 2016 lúc 8:05Jul 21, 2016 at 8:05
Lee Martinlee MartinLee Martin
Phim huy hiệu bạc 1711 Huy hiệu đồng1 silver badge3 bronze badges
3
Tôi không thể tìm thấy bất kỳ điều gì đã xử lý tình huống cụ thể của mình, đó là loại bỏ các URL ở giữa các tweet cũng có khoảng trắng ở giữa các URL nên tôi đã tự làm:
[https?:\/\/][\s]*[www\.]?[\s]*[[\w|\s]+\.]*[[\w\-\s]+\/]*[[\w\-]+][[\?]?[\w\s]*=\s*[\w\%&]*]*
Đây là một lời giải thích:
re.sub[r'http\S+', '', stringliteral]
5 khớp // hoặc // re.sub[r'http\S+', '', stringliteral]
6 không gian trắng tùy chọn re.sub[r'http\S+', '', stringliteral]
7 Tùy chọn khớp với www. re.sub[r'http\S+', '', stringliteral]
6 Tùy chọn khớp với khoảng trắng re.sub[r'http\S+', '', stringliteral]
9 khớp với 0 hoặc nhiều hơn một hoặc nhiều ký tự từ theo sau là khoảng thời gian import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
0 khớp với 0 hoặc nhiều từ một hoặc nhiều từ [hoặc một dấu gạch ngang] theo sau là '\' import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
1 bất kỳ đường dẫn còn lại ở cuối URL theo sau là kết thúc tùy chọn import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
2 khớp với các thông số truy vấn kết thúc [ngay cả với không gian trắng, v.v.]re.sub[r'http\S+', '', stringliteral]
5 matches // or //re.sub[r'http\S+', '', stringliteral]
6 optional whitespacesre.sub[r'http\S+', '', stringliteral]
7 optionally matches www.re.sub[r'http\S+', '', stringliteral]
6 optionally matches whitespacesre.sub[r'http\S+', '', stringliteral]
9 matches 0 or more of one or more word characters followed by a periodimport re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
0 matches 0 or more of one or more words[or a dash or a space] followed by '\'import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
1 any remaining path at the end of the url followed by an optional endingimport re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
2 matches
ending query params [even with white spaces,etc] Kiểm tra điều này ở đây: //regex101.com/r/nmvgoo/8
Đã trả lời ngày 16 tháng 8 năm 2018 lúc 20:20Aug 16, 2018 at 20:20
3
Những gì bạn thực sự muốn làm là loại bỏ bất kỳ chuỗi nào bắt đầu bằng
import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
3 hoặc import re
text = re.sub[r'^https?:\/\/.*[\r\n]*', '', text, flags=re.MULTILINE]
4 cộng với bất kỳ sự kết hợp nào của các ký tự không gian trắng. Đây là cách tôi sẽ giải quyết nó. Giải pháp của tôi rất giống với giải pháp của @tolgayilmaztext1
text2
text3
text4
text5
text6
0Và kết quả của việc chạy một trong hai mã ở trên là
text1
text2
text3
text4
text5
text6
1Tôi thích cái thứ hai vì nó dễ đọc hơn.
Đã trả lời ngày 15 tháng 1 năm 2019 lúc 20:42Jan 15, 2019 at 20:42
Samuel Ndesamuel ndeSamuel Nde
2.4322 Huy hiệu vàng23 Huy hiệu bạc23 Huy hiệu Đồng2 gold badges23 silver badges23 bronze badges
4
Để xóa bất kỳ URL nào trong chuỗi trong Python, bạn có thể sử dụng chức năng Regex này:remove any URL within a string in Python, you can use this RegEx function :
text1
text2
text3
text4
text5
text6
2Đã trả lời ngày 28 tháng 8 năm 2020 lúc 11:55Aug 28, 2020 at 11:55
1
Tôi biết điều này đã được trả lời và nó ngu ngốc muộn nhưng tôi nghĩ điều này nên ở đây. Đây là một regex phù hợp với bất kỳ loại url nào.
text1
text2
text3
text4
text5
text6
3Nó có thể được sử dụng như
text1
text2
text3
text4
text5
text6
4Đã trả lời ngày 13 tháng 3 năm 2018 lúc 13:39Mar 13, 2018 at 13:39
5
Bạn cũng có thể nhìn nó từ cách khác ...
text1
text2
text3
text4
text5
text6
5Đã trả lời ngày 4 tháng 7 năm 2012 lúc 16:48Jul 4, 2012 at 16:48
Jon Clements ♦ Jon Clements♦Jon Clements
135K32 Huy hiệu vàng240 Huy hiệu bạc273 Huy hiệu Đồng32 gold badges240 silver badges273 bronze badges
Biểu thức chính quy sau đây trong Python hoạt động tốt để phát hiện [các] URL trong văn bản:Python works well for detecting URL[s] in the text:
text1
text2
text3
text4
text5
text6
6Đầu ra::
text1
text2
text3
text4
text5
text6
Đã trả lời ngày 2 tháng 9 năm 2017 lúc 14:19Sep 2, 2017 at 14:19
2
text1
text2
text3
text4
text5
text6
8Ngoài
text1
text2
text3
text4
text5
text6
9Đã trả lời ngày 5 tháng 11 năm 2019 lúc 6:07Nov 5, 2019 at 6:07
1
Tôi nghĩ rằng mẫu Regex URL tổng quát nhất là mô hình này:
re.sub[r'http\S+', '', stringliteral]
0Có một mô -đun nhỏ làm những gì bạn muốn:
re.sub[r'http\S+', '', stringliteral]
1re.sub[r'http\S+', '', stringliteral]
2Đã trả lời ngày 11 tháng 8 năm 2021 lúc 9:21Aug 11, 2021 at 9:21
Một đơn giản.* Với một cái nhìn tích cực phía sau nên làm công việc.
re.sub[r'http\S+', '', stringliteral]
3Đã trả lời ngày 20 tháng 9 năm 2021 lúc 7:07Sep 20, 2021 at 7:07
TbhavnanitbhavnaniTBhavnani
6716 Huy hiệu bạc12 Huy hiệu đồng6 silver badges12 bronze badges
Tại sao không sử dụng cái này nó hoàn thành như vậy
re.sub[r'http\S+', '', stringliteral]
4
Fobersteiner
18,5K5 Huy hiệu vàng29 Huy hiệu bạc58 Huy hiệu Đồng5 gold badges29 silver badges58 bronze badges
Đã trả lời ngày 12 tháng 7 lúc 4:41Jul 12 at 4:41
0