在python变量中查找正则表达式图案文本

时间:2017-02-15 08:50:44

标签: python-3.x beautifulsoup

    # 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]

变量'value'中的文本内部

我该怎么做?

根据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)

仍然感到错误

追踪(最近一次通话):   文件“ex1.py”,第19行,in     my_match = re.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) TypeError:期望的字符串或类似字节的对象

1 个答案:

答案 0 :(得分:0)

你需要Python中的一些正则表达式。 Python中的正则表达式以字符串形式表示,re模块提供matchsearchfindall等函数,它们可以将字符串作为参数并将其视为一种模式。

在您的情况下,模式[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