[关闭]
@zhangyu756897669 2017-09-12T15:05:06.000000Z 字数 2317 阅读 611

在此处输入标题

未分类


创造一个email 地址

您还需要能够匹配电子邮件地址的正则表达式。

  1. #! python3
  2. # phoneAndEmail.py - 查找剪贴板上的电话号码和电子邮件地址。
  3. import pyperclip, re
  4. phoneRegex = re.compile(r'''(
  5. ---snip---
  1. # Create email regex.
  2. emailRegex = re.compile(r'''(
  3. [a-zA-Z0-9._%+-]+ # 用户名❶
  4. @ # @ 符号
  5. [a-zA-Z0-9.-]+ # 域名
  6. (\.[a-zA-Z]{2,4})
  7. )''', re.VERBOSE)
  8. #在剪贴板文本中查找匹配。
  9. #将结果复制到剪贴板

步骤3:查找剪贴板文本中的所有匹配项

现在您已经指定了电话号码和电子邮件地址的正则表达式,您可以让Python的re模块尽力在剪贴板上查找所有匹配项。 pyperclip.paste()函数将获取剪贴板上文本的字符串值,而findall()regex方法将返回一个元组列表。

  1. #! python3
  2. # phoneAndEmail.py - Finds phone numbers and email addresses on the clipboard.
  3. import pyperclip, re
  4. phoneRegex = re.compile(r'''(
  5. --snip--
  1. # Find matches in clipboard text.
  2. text = str(pyperclip.paste())
  3. matches = [] #❶
  4. for groups in phoneRegex.findall(text): #❸
  5. phoneNum = '-'.join([groups[1], groups[3], groups[5]])
  6. if groups[8] != '':
  7. phoneNum += ' x' + groups[8]
  8. matches.append(phoneNum)
  9. for groups in emailRegex.findall(text): #❷
  10. matches.append(groups[0])
  11. # TODO: 将结果复制到剪贴板。

步骤4:将匹配加入剪贴板的字符串

  1. #! python3
  2. # phoneAndEmail.py - Finds phone numbers and email addresses on the clipboard.
  3. --snip--
  4. for groups in emailRegex.findall(text):
  5. matches.append(groups[0])
  6. # Copy results to the clipboard.
  7. if len(matches) > 0:
  8. pyperclip.copy('\n'.join(matches))
  9. print('Copied to clipboard:')
  10. print('\n'.join(matches))
  11. else:
  12. print('No phone numbers or email addresses found.')

运行程序

例如,将Web浏览器打开到Nostarch Press联系页面http://www.nostarch.com/contactus.htm,按CTRL-A选择页面上的所有文本,然后按CTRL-C复制它到剪贴板。当您运行此程序时,输出将如下所示:

Copied to clipboard:
800-420-7240
415-863-9900
415-863-9950
info@nostarch.com
media@nostarch.com
academic@nostarch.com
help@nostarch.com

类似程序的想法

识别文本模式(并且可能用sub()方法代替它们)具有许多不同的潜在应用。
* 查找以http://或https://开头的网址。
* 以不同的日期格式清理日期(例如3/14/2015,03-14-2015和2015/3/14),以日期格式替换为单一标准格式。
* 删除敏感信息,如社会保障金或信用卡号码。
* 查找常见的拼写错误,例如单词之间的多个空格,意外地意外重复的单词或句子结尾处的多个感叹号。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注