#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
Пояснения
^[w- .]
=> начало выражения должно начинаться со слова, ,- . например: www.Coursera или www.89 — и так далее, и может иметь, по крайней мере, один символ, совпадающий с ‘ ‘ в конце.
=> простой для восприятия средний раздел шаблона www.somedomain .[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. Я не думаю
.*
, что здесь было бы правильно, поскольку оно ограничено и будет включать больше символов, разрешенных вопросом.