首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动化无聊的东西:电话和电子邮件地址抽取(错误,复制从例子)

自动化无聊的东西:电话和电子邮件地址抽取(错误,复制从例子)
EN

Stack Overflow用户
提问于 2018-07-13 14:48:31
回答 1查看 1K关注 0票数 0

下面的代码与书中的项目示例是逐字的,除非有错误。当我将一些代码复制到剪贴板,然后在空闲状态下运行程序时,shell如下所示。请帮我排除疑难。

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:/Python3/phoneAndEmail.py", line 23, in <module>
    )''', re.VERBOSE)
  File "C:\Users\Tyler\AppData\Local\Programs\Python\Python36\lib\re.py", line 233, in compile
    return _compile(pattern, flags)
  File "C:\Users\Tyler\AppData\Local\Programs\Python\Python36\lib\re.py", line 301, in _compile
    p = sre_compile.compile(pattern, flags)
  File "C:\Users\Tyler\AppData\Local\Programs\Python\Python36\lib\sre_compile.py", line 562, in compile
    p = sre_parse.parse(p, flags)
  File "C:\Users\Tyler\AppData\Local\Programs\Python\Python36\lib\sre_parse.py", line 856, in parse
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, False)
  File "C:\Users\Tyler\AppData\Local\Programs\Python\Python36\lib\sre_parse.py", line 415, in _parse_sub
    itemsappend(_parse(source, state, verbose))
  File "C:\Users\Tyler\AppData\Local\Programs\Python\Python36\lib\sre_parse.py", line 766, in _parse
    source.tell() - start)
sre_constants.error: missing ), unterminated subpattern at position 0 (line 1, column 1)
代码语言:javascript
复制
#! python3
# phoneAndEmail.py - Finds phone numbers and email addresses on the 
#clipboard.

import pyperclip, re


# Create phone regex
phoneRegex = re.compile(r'''(
   (\d{3}|\(\d{3}\))?                 # area code
   (\s|-|\.)?                         # separator
   (\d{3})                            # 3 digits
   (\s|-|\.)?                         # separator
   (\d{4})                            # 4 digits
   (\s*(ext|x|ext.)\s*(\d{2,5}))?     # ext
   )''', re.VERBOSE)

# Create email regex
emailRegex = re.compile(r'''(
   [a-zA-Z0-9._%+-]+                  # username
   @                                  # @
   [a-zA-Z0-9.-]+                     # domain name
   (\.[a-zA-Z]{2-4}                   # dot something
   )''', re.VERBOSE) 

# Find matches in clipboard text.
text = str(pyperclip.paste())
matches = []

for groups in phoneRegex.findall(text):
   phoneNum = '-'.join([groups[1],groups[3], groups[5]])
   if groups[8] != '':
      phoneNum += ' x' + groups[8]
   matches.append(phoneNum)

for groups in emailRegex.findall(text):
   matches.append(groups[0])

#Copy results to clipboard
if len(matches) > 0:
   pyperclip.copy('\n'.join(matches))
   print('Copied to Clipboard:')
   print('\n'.join(matches))
else:
   print('No phone numbers or emails found.')
EN

回答 1

Stack Overflow用户

发布于 2018-07-13 14:56:00

看看这个错误:

sre_constants.error:缺失),0位置的未终止子模式(第1行,第1列)

代码语言:javascript
复制
emailRegex = re.compile(r'''(
   [a-zA-Z0-9._%+-]+                  # username
   @                                  # @
   [a-zA-Z0-9.-]+                     # domain name
   (\.[a-zA-Z]{2-4}                   # dot something

)''', re.VERBOSE) 

这意味着你错过了一个),你就是这样。有两个(,但只有一个)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51327782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档