Необходимо написать регулярное выражение для веб-адреса верхнего уровня, которое включает буквы, цифры, символы подчеркивания, а также точки, тире и знак плюс

#python #regex

#python #регулярное выражение

Вопрос:

check_web_address Функция проверяет, соответствует ли переданный текст веб-адресу верхнего уровня, что означает, что он содержит буквенно-цифровые символы (которые включают буквы, цифры и символы подчеркивания), а также точки, тире и знак плюс, за которым следует точка и домен верхнего уровня, состоящий только из символов, такой как».com», «.info», «.edu» и т. Д. Для этого заполните регулярное выражение, используя escape-символы, подстановочные знаки, квалификаторы повторения, символы начала и конца строки и классы символов.

 import re

def check_web_address(text):
  pattern = ___
  result = re.search(pattern, text)
  return result != None

print(check_web_address("gmail.com")) # True
print(check_web_address("www@google")) # False
print(check_web_address("www.Coursera.org")) # True
print(check_web_address("web-address.com/homepage")) # False
print(check_web_address("My_Favorite-Blog.US")) # True
  

Я пробовал использовать этот шаблон, но все примеры ввода сбывались:

 pattern = '[^/@][A-Za-z._-]*$'
  

Какой будет точный шаблон для всего вышеупомянутого сценария?

Ответ №1:

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

 import re
def check_web_address(text):
  pattern = r'^[A-Za-z._-][^/@]*$'
  result = re.search(pattern, text)
  return result != None

print(check_web_address("gmail.com")) # True
print(check_web_address("www@google")) # False
print(check_web_address("www.Coursera.org")) # True
print(check_web_address("web-address.com/homepage")) # False
print(check_web_address("My_Favorite-Blog.US")) # True
  

Ответ №2:

Это работает нормально

   pattern = r"^w.*.[a-zA-Z]*$"
  

Ответ №3:

Шаблон, который я использовал для этого, был:

 pattern = "^[w]*[.- ][^/@]*$"
  

Ответ №4:

Я сделал это так

 import re
def check_web_address(text):
  pattern = r'^[A-Za-z0-9-_ .]*[.][A-Za-z]*$'
  result = re.search(pattern, text)
  return result != None

print(check_web_address("gmail.com")) # True
print(check_web_address("www@google")) # False
print(check_web_address("www.Coursera.org")) # True
print(check_web_address("web-address.com/homepage")) # False
print(check_web_address("My_Favorite-Blog.US")) # True
  

^ начать

[A-Za-z0-9-_ .] * определители повторения буквенно-цифровых символов (которые включают буквы, цифры и символы подчеркивания), а также точки, тире и знак плюс

[.] , за которым следует точка

[A-Za-z] * домен верхнего уровня, содержащий только символы, такой как «.com», «.info», «.edu» и т. Д

$ End

Ответ №5:

Я пробовал с этим шаблоном:

pattern = ".[a-zA-Z] $"

Это тоже должно работать. Он проверяет, содержит ли результат точки, за которыми следует одно или несколько вхождений алфавитов верхнего или нижнего регистра в конце.

Ответ №6:

 pattern = r"^[w|.-_] .[a-zA-Z] $"
  

Комментарии:

1. пожалуйста, уточните свой ответ, объясните, почему это работает.

Ответ №7:

 import re
def check_web_address(text):
  pattern = r'^[w- .] .[a-zA-z] $'
  result = re.search(pattern, text)
  return result != None

print(check_web_address("gmail.com")) # True  
print(check_web_address("www@google")) # False.  
print(check_web_address("www.Coursera.org")) # True
print(check_web_address("web-address.com/homepage")) # False.    
print(check_web_address("My_Favorite-Blog.US")) # True
  

Пояснения

  1. ^[w- .] => начало выражения должно начинаться со слова, ,- . например: www.Coursera или www.89 — и так далее, и может иметь, по крайней мере, один символ, совпадающий с ‘ ‘ в конце
  2. . => простой для восприятия средний раздел шаблона www.somedomain .
  3. [a-zA-z] $ => matches .in или .В простом выражении шаблона, потому что домен прост без каких-либо специальных символов

Надеется, что это поможет 🙂 Счастливого сложения

Ответ №8:

 import re
def check_web_address(text):
  pattern = r'.[comeduorginfoUSnetintmilgov]*$'
  result = re.search(pattern, text)
  return result != None

print(check_web_address('gmail.com')) # True
print(check_web_address('www.google')) # False
print(check_web_address('www.Coursera.org')) # True
print(check_web_address('web-address.com/homepage')) # False
print(check_web_address('My_Favorite-Blog.US')) # True
  

Ответ №9:

Я думаю, что это наиболее точное: pattern = r"^[w. -]*.[a-zA-Z]*$"

Ответ №10:

Это должно работать нормально:

 pattern = r".*.[A-Za-z]{1,3}.$"
  

В одном длинном предложении:

Здесь мы фильтруем любое количество символов (. *), за которым следует точка (.), Затем проверяем наличие 2 или 3 заглавных или строчных символов ([A-Za-z]{1,3}. $) Здесь:

.* : Принимает любое число любого символа.

. : Обратная косая черта » — это escape-символ, поэтому это только точка (‘.’)

[A-Za-z] : класс символов [A-Za-z] означает, что принимает заглавные и строчные буквы,

{1,3} : чтобы ограничить вышеуказанный ([A-Za-z]) символ между 1 и 3 (исключая 1, включая 3)

. : обычно это означает любой один символ, но с {1,3} он принимает указанное количество символов.

$ : означает, что строка должна заканчиваться

В одном длинном предложении:

Здесь мы фильтруем любое количество символов (.*), за которым следует точка (.), Затем проверяем наличие 2 или 3 заглавных или строчных символов ([A-Za-z]{1,3}.$)

Комментарии:

1. Я не думаю .* , что здесь было бы правильно, поскольку оно ограничено и будет включать больше символов, разрешенных вопросом.