• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Функция find в python и регулярки

Sombrero

Green Team
23.09.2019
67
4
BIT
0
Не могу понять , работают регулярки в методе string find или нет ? Нужно экранировать спецсимволы или ненужно ?
Гугл упорно подсовывает инфу по regex . Тесты показывают что вроде бы нет , не работают . Но попытки найти в коде страницы url со спецсимволами , что-то типа
Код:
found = False

if page.find('./url.php?url=https%3A%2F%2Fwww.site.net') != -1:

    found=True

тоже получается как бы через раз .
Хотелось бы однозначный ответ , чтобы быть уже уверенным на 100% :\
 

f22

Codeby Academy
Gold Team
05.05.2019
1 940
228
BIT
1 774
тоже получается как бы через раз .
все спецсимволы должны экранироваться.
Получается потому что символ точки так же используется в регулярных выражениях, как замена любого символа

Тот код который ты привёл, ну ОООЧЕНЬ странный. Объясни, что ты хочешь сделать .

Если тебе нужно находить какой-то тег на странице, то проще будет использовать библиотеку BeautifulSoup.
 

Sombrero

Green Team
23.09.2019
67
4
BIT
0
Тот код который ты привёл, ну ОООЧЕНЬ странный. Объясни, что ты хочешь сделать .
Риали ? Пытаюсь определить по ключам на странице phpmyadmin .
Ключи пока такие :
url.php?url=https%3A%2F%2Fwww.phpmyadmin.net
themes/pmahomme
./PMA3/themes/
Чем плох тут find ?
 

f22

Codeby Academy
Gold Team
05.05.2019
1 940
228
BIT
1 774
Чем плох тут find ?
Зачем использовать дополнительную библиотеку, если тебе просто нужно найти текст.
Python:
import requests
page_html = requests.get("https://codeby.net/resources").content.decode("UTF-8")

if "phpmyadmin" in page_html:
    print("phpmyadmin found!")

Скачиваешь страницу, получаешь её текст, кодируешь в UTF-8 кодировку и работаешь с данными, как с текстом.

То же самое ещё короче
Python:
import requests

if "phpmyadmin" in requests.get("https://codeby.net/resources").content.decode("UTF-8"):
    print("phpmyadmin found!")
 

Sombrero

Green Team
23.09.2019
67
4
BIT
0
Вот оно чего . Я привык в плюсах через find искать . Считал что это базовый метод . Респект .
 

f22

Codeby Academy
Gold Team
05.05.2019
1 940
228
BIT
1 774
Вот оно чего . Я привык в плюсах через find искать . Считал что это базовый метод . Респект .
Пойми меня правильно, регулярные выражения прекрасны, мощны, их нужно знать и уметь.
очень понятное издание на эту тему.
5145e38ca4e2[1].jpg

Но они занимают память, требуют умений и практики.
А в Python и в других ЯП есть более простые решения.

То, что предложил тебе - это один из множества вариантов, но, судя по твоей задаче, им можно обойтись.
Если же задача сложнее, то конечно, нужно использовать регулярки.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!