📜  查找隐藏号码的程序(1)

📅  最后修改于: 2023-12-03 15:26:39.355000             🧑  作者: Mango

查找隐藏号码的程序

本程序旨在帮助用户查找隐藏号码,可以自动识别出手机号、座机号等常见号码,对于存在一定规律的隐藏号码也能进行有效识别。

使用说明

首先,用户需要运行本程序并输入待查找的字符串。程序会自动判断其中可能存在的号码,并将其输出。用户可以选择将输出结果保存至本地文件或进行复制。

程序运行环境
  • 操作系统:Windows/Linux/macOS
  • 编程语言:Python 3.x
  • 第三方库:re, pyperclip
运行步骤
  1. 下载并安装 Python 3.x。(若已安装则跳过此步骤。)
  2. clone 本程序至本地或下载源码压缩包并解压。
  3. 进入程序所在目录,在命令行中执行 python find_hidden_number.py
  4. 按照提示输入待查找的字符串,程序会自动输出其中存在的号码并询问是否需要保存。
  5. 根据需要选择保存或复制输出结果。
代码实现
import re
import pyperclip

def find_hidden_number(text):
    print('正在查找隐藏号码...')
    pattern = re.compile(r'\d{3,4}[- ]?\d{7,8}|\d{11}')
    matches = pattern.findall(text)
    
    if not matches:
        print('未找到隐藏号码。')
        return ''
    
    output = '\n'.join(matches)
    print(f'已找到以下 {len(matches)} 个隐藏号码:\n{output}')

    print('是否需要保存输出结果至本地文件?(Y/N)')
    answer = input().upper()
    if answer == 'Y':
        with open('output.txt', 'w') as f:
            f.write(output)
        print(f'输出结果已保存至 {os.getcwd()}/output.txt')
    else:
        pyperclip.copy(output)
        print('输出结果已复制至剪贴板。')
    return output

if __name__ == '__main__':
    text = input('请输入待查找的字符串:')
    find_hidden_number(text)
代码解释

对于输入的字符串,程序首先通过正则表达式 r'\d{3,4}[- ]?\d{7,8}|\d{11}' 提取其中可能存在的号码。其中 \d{3,4}[- ]?\d{7,8} 表示匹配形式为 “区号(3-4位数字)+电话号码(7-8位数字)” 或者 “区号+空格/横杆+电话号码” 的电话号码;\d{11} 表示匹配形式为 “11位数字” 的手机号码。程序将匹配结果以列表形式存储在 matches 变量中。

若程序未找到隐藏号码,则在命令行中输出 “未找到隐藏号码。” 并返回空字符串。

若程序已找到隐藏号码,则将其输出至命令行中,并询问用户是否需要将输出结果保存至本地文件或复制至剪贴板。若用户选择保存,则程序自动将输出结果写入当前目录下的 output.txt 文件中。若用户选择复制,则程序自动将输出结果复制至剪贴板。

最后,程序将输出结果以字符串形式返回。