Python регулярное выражение для удаления URL-адресов и доменных имен в строке - PullRequest
0 голосов
/ 26 февраля 2019

Я ищу регулярное выражение для удаления каждого URL или доменного имени из строки, так что:

string='this is my content domain.com more content http://domain2.org/content and more content domain.net/page'

становится

'this is my content more content and more content'

Достаточно удалить наиболее распространенные tldsдля меня, поэтому я попытался

string = re.sub(r'\w+(.net|.com|.org|.info|.edu|.gov|.uk|.de|.ca|.jp|.fr|.au|.us|.ru|.ch|.it|.nel|.se|.no|.es|.mil)\s?','',string)

, но это удаляет слишком много материала, а не только URL-адреса.Какой будет правильный синтаксис?

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Это альтернативное решение:

import re
f = open('test.txt', 'r')
content = f.read()
pattern = r"[^\s]*\.(com|org|net)\S*"
result = re.sub(pattern, '', content)
print(result)

Ввод:

this is my content domain.com more content http://domain2.org/content and more content domain.net/page' and https://www.foo.com/page.php 

Выход:

this is my content  more content  and more content  and
0 голосов
/ 26 февраля 2019

вы должны избегать всех этих точек, или, что еще лучше, переместить точку за пределы группы и убежать от нее один раз, также вы можете захватывать из не пространства до не пространства, как это:

re.sub(r'[\S]+\.(net|com|org|info|edu|gov|uk|de|ca|jp|fr|au|us|ru|ch|it|nel|se|no|es|mil)[\S]*\s?','',string)

следующее:
'this is my content domain.com more content http://domain2.org/content and more content domain.net/page thingynet stuffocom'
становится:

'this is my content more content and more content thingynet stuffocom'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...