给定一个电话号码列表,以及多条数字正则规则,输出每个电话号码匹配到的数字正则规则结果。请按此提供python代码。


mnc_dict = {
"4121579+":"22851",
"4122579+":"22852",
}
import pandas as pd
import re

def match_phone_numbers(phone_numbers, regex_patterns):
    results = []
    results_mnc = []
    for number in phone_numbers:
        number = number.replace("'","")
        matches = []
        DEST_OPER_IDs = []
        for pattern in regex_patterns:
            if re.match(pattern, number):
                matches.append(pattern)
                DEST_OPER_IDs.append(mnc_dict.get(pattern))
        if matches==[]:
            matches = ['default']
            DEST_OPER_IDs = ['22899']
        results.append(matches)
        results_mnc.append(DEST_OPER_IDs)
    return results, results_mnc

# 示例输入数据
# phone_numbers = [
# '417996689121',
# '41799672434',
# '41799672504',
#
# ]
phone_numbers = pd.read_excel(r'phoneNBs.xlsx', dtype=str)['phoneNB_E164']
regex_patterns = mnc_dict.keys()

# 调用函数进行匹配
matched_results, results_mnc = match_phone_numbers(phone_numbers, regex_patterns)


# 创建一个字典,将列表数据作为值,列名作为键
data = {'Column1': phone_numbers, 'Column2': matched_results, 'Column3': results_mnc}
# 创建一个DataFrame
df = pd.DataFrame(data)
# 导出为Excel文件
df.to_excel('output.xlsx', index=False)

# 输出匹配结果
for i, number in enumerate(phone_numbers):
    print(f'{number}: {matched_results[i]}: {results_mnc[i]}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值