Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

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
http://url.com/bla1/blah2/
text3
text4
http://url.com/bla2/blah2/
text5
text6
http://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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

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.7672 Huy hiệu vàng19 Huy hiệu bạc18 Huy hiệu đồng2 gold badges19 silver badges18 bronze badges

7

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.3K32 Huy hiệu vàng127 Huy hiệu bạc195 Huy hiệu Đồng32 gold badges127 silver badges195 bronze badges

1

Điều này làm việc cho tôi:

import re
thestring = "text1\ntext2\nhttp://url.com/bla1/blah2/\ntext3\ntext4\nhttp://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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

PranzellpranzellPranzell

2.09815 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 https://sdfs.sdfsdf.com/sdfsdf/sdfsdf/sd/sdfsdfs?bob=%20tree&jef=man lets see this too https://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 http: // hoặc https: //
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 http:// or https://
re.sub(r'http\S+', '', stringliteral)
6 optional whitespaces
re.sub(r'http\S+', '', stringliteral)
7 optionally matches www.
re.sub(r'http\S+', '', stringliteral)
6 optionally matches whitespaces
re.sub(r'http\S+', '', stringliteral)
9 matches 0 or more of one or more word characters followed by a period
import 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 ending
import 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: https: //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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

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 @tolgayilmaz

text1
text2
text3
text4
text5
text6
0

Và kết quả của việc chạy một trong hai mã ở trên là

text1
text2
text3
text4
text5
text6
1

Tô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.4522 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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

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
3

Nó 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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

Jon Clements ♦ Jon ClementsJon Clements

135K32 Huy hiệu vàng242 Huy hiệu bạc275 Huy hiệu Đồng32 gold badges242 silver badges275 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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

2

text1
text2
text3
text4
text5
text6
8

Ngoà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)
0

Có một mô -đun nhỏ làm những gì bạn muốn:

re.sub(r'http\S+', '', stringliteral)
1
re.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

Hướng dẫn how do i remove a link from text in python? - làm cách nào để xóa liên kết khỏi văn bản trong python?

Fobersteiner

Phim thương hiệu vàng 19K55 gold badges32 silver badges59 bronze badges

Đã trả lời ngày 12 tháng 7 lúc 4:41Jul 12 at 4:41

AlialavialialaviAliAlavi

1081 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges

0