【问题标题】:Why doesn't Python3 "re" work in Jupyter?为什么 Python3 不能在 Jupyter 中“重新”工作?
【发布时间】:2019-10-14 16:21:59
【问题描述】:

我有一些用于查找单词的 Python3 代码,可能带有嵌入的#、-、撇号或一些国际字符,在英文文本中:

>>> import re
>>> exp
"((?:[\\w#éüöêåo]+[-’'])*[\\w#éüöêåo]+)"
>>> line
'William Shakespea#e was an Englis# poet, playwright a#d'
>>> re.findall( exp, line )
['William', 'Shakespea#e', 'was', 'an', 'Englis#', 'poet', 'playwright','a#d']

如图所示,它在 Python 解释器中按预期工作,但在 Jupyter 笔记本中运行相同代码时返回 None。怎么会?可能跟字符编码有关?

【问题讨论】:

  • 请在两个环境中添加您用来创建上述“exp”变量内容的 exact 代码行。

标签: regex python-3.x jupyter-notebook


【解决方案1】:

问题与re 无关。在周围的代码中,我是说:

text = []
...
line = reader.readline()
text = text.extend( re.findall( regexp, line )

我没有意识到 String.extend 会产生副作用,返回 None。实时调频。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-31
    • 2021-06-15
    • 2017-05-08
    • 2016-04-08
    • 2014-02-21
    • 2021-03-25
    • 1970-01-01
    相关资源
    最近更新 更多