Regex в Python, необходимо напечатать название сайта из строки - PullRequest
1 голос
/ 28 октября 2019
Import re
x = 'my website name is www.algoexpert.com and i have other website too'
For line in x:
      y = line.rstrip()
z = re.findall('.*\S+/.[a-z]{0-9}/.\S+',y) 
print(z) 

я просто хочу напечатать название сайта (www.algoexpert.com)

1 Ответ

1 голос
/ 28 октября 2019

Неполадки, которые необходимо исправить:

  • x - это сама строка, почему вы зацикливаетесь на ней с for line in x?

  • [a-z]{0-9} - пытается охватить только алфавитные символы, хотя и неправильно (может быть {0,9}). Диапазон символов должен составлять [a-z0-9]+ или, по крайней мере, - [a-z]+ (в зависимости от первоначального намерения)

  • точек / периодов . следует экранировать с помощью обратной косой черты \.

Фиксированная версия (упрощенная версия):

import re

x = 'my website name is www.algoexpert.com and i have other website too'
z = re.findall('\S+\.[a-z0-9]+\.\S+', x.strip())
print(z)   # ['www.algoexpert.com']
...