【问题标题】:Python scraper regex that allows spaces and periods允许空格和句点的 Python 刮板正则表达式
【发布时间】:2012-06-13 22:24:19
【问题描述】:

我正在尝试使用允许空格和句点的正则表达式编写一个 python 刮板。

我正在尝试从某个站点获取棒球队的名称,所以有些是 Miami(全字),有些是 San Francisco(带空格),还有一些是 Chi. Cubs(句号和空格)。

我知道城市名称之前的模式,我知道之后的模式名称,我试图找到与两者之间的所有内容相匹配的东西,无论字符、空格或句点的数量如何。我更喜欢使用正则表达式,但如果它更容易使用不同的库,我对它持开放态度。

【问题讨论】:

    标签: python regex


    【解决方案1】:

    这是一个匹配任意数量的空格、句点或字母的正则表达式:

    [ .a-zA-Z]+
    

    例子:

    >>> re.search(r'[ .a-zA-Z]+', 'Miami').group(0)
    'Miami'
    >>> re.search(r'[ .a-zA-Z]+', 'San Francisco').group(0)
    'San Francisco'
    >>> re.search(r'[ .a-zA-Z]+', 'Chi. Cubs').group(0)
    'Chi. Cubs'
    

    【讨论】:

    • 您需要转义句点,即\.,因为它现在匹配任何字符。
    • @Junuxx - . 在字符类中没有特殊含义,因此在此正则表达式中不需要转义。
    • games = re.findall(team_tool + '[ .a-zA-z]', site) team_tool 和 site 都是变量,这里只返回每个城市的首字母
    • 我正在尝试将所有团队报废到一个列表中,我得到它们的顺序很重要
    • @Tom,我发现您在复制和粘贴时遇到了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多