2017-02-15 3 views
0
# Ex1 
    # Number of datasets currently listed on data.gov 
    # http://catalog.data.gov/dataset 


    import requests 
    import re 

    from bs4 import BeautifulSoup 


    page = requests.get(
     "http://catalog.data.gov/dataset") 

    soup = BeautifulSoup(page.content, 'html.parser') 

    value = soup.find_all(class_='new-results') 

    results = re.search([0-9][0-9][0-9],[0-9][0-9][0-9], value 


    print(value) 

Код выше .. Я хочу найти текст в форме на regex = [0-9] [0-9] [0-9], [ 0-9] [0-9] [0-9]Поиск текста с регулярным выражением внутри переменной python

внутри текста внутри переменной 'значение'

Как я могу это сделать?

на основе предположения ShellayLee, я изменил его на

import requests 
import re 

from bs4 import BeautifulSoup 


page = requests.get(
    "http://catalog.data.gov/dataset") 

soup = BeautifulSoup(page.content, 'html.parser') 

value = soup.find_all(class_='new-results') 

my_match = re.search(r'\d\d\d,\d\d\d', value) 


print(my_match) 

STILL получаю ошибку

Traceback (самый последний вызов последнего): Файл " ex1.py", строка 19, в my_match = ре .search (r '\ d \ d \ d, \ d \ d \ d', value) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", строка 182, в поиске return _compile (pattern, flags) .search (string) ТипError: ожидаемая строка или байтоподобный объект

ответ

0

Вам нужны некоторые основы регулярного выражения в Python. Регулярное выражение в Python представлено в виде строки, а модуль re предоставляет такие функции, как match, search, findall, которые могут принимать строку в качестве аргумента и рассматривать ее как шаблон.

В вашем случае, шаблон [0-9][0-9][0-9],[0-9][0-9][0-9] может быть представлена ​​в виде:

my_pattern = r'\d\d\d,\d\d\d' 

затем используется как

my_match = re.search(my_pattern, value_text) 

где \d означает цифру символ (такой же, как [0-9]). r, ведущий строку, означает, что обратные отскоки в строке не рассматриваются как escaper.

Функция поиска возвращает match object.


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

https://docs.python.org/3.6/howto/regex.html

+0

Спасибо ShellayLee! –

+0

@BinuAlexander Если вы найдете ответ полезным, пожалуйста, дайте мне возвышение :) – ShellayLee

Смежные вопросы