Regex 尝试获取字符串 Python 的特定部分

问题描述 投票:0回答:1

我对正则表达式很陌生,我正在尝试抓取该字符串的一部分,我正在寻找它开始抓取字符串中第一个数字的字符串,并将整个字符串复制到最后的数字。下面的例子。

import re

string = "['Today is the open house of 1234 High Drive, Denver, COLORADO 80204; open to the Public "

property_address = re.findall('\d-\d\d\d\d\d', str(string))

print(property_address)

上面的代码不起作用,我对如何告诉正则表达式有点困惑,从找到的第一个数字开始并抓取,直到找到 5 位数字序列。

感谢所有帮助或示例。

python regex
1个回答
0
投票

您可以使用:

import re

s = """
aldjfladjfa alsdjflaksjdf 1234 High Drive, Denver, COLORADO 80204 aldjfladjfa alsdjflaksjdf 
aldjfladjfa alsdjflaksjdf 1234 High Drive, Denver, COLORADO 80204 - 1829
aldjfladjfa alsdjflaksjdf  1234 High Drive, Denver, COLORADO 00204 - 1829
aldjfladjfa alsdjflaksjdf aldjfladjfa alsdjflaksjdf aldjfladjfa alsdjflaksjdf 
aldjfladjfa alsdjflaksjdf 1234 High Drive, 3rd, 4th phone number 1391713917 Denver, COLORADO 00204 - 1829 aldfjald

"""

p = r'\b[1-9].*[0-9]{5}(?:-[0-9]{4}\b)?'

find_address = re.findall(p, s)

print(find_address)

打印

['1234 高驱动器,丹佛,科罗拉多州 80204','1234 高驱动器,丹佛, 科罗拉多州 80204'、'1234 高驱动器,丹佛,科罗拉多州 00204'、'1234 高 Drive,第三、第四电话号码 1391713917 Denver, COLORADO 00204']

注释

  • 有时,邮政编码后面会有一个
    -
    和四位数字。正确的?这个应该考虑一下。
© www.soinside.com 2019 - 2024. All rights reserved.