regex - 为什么 Python3 不能在 Jupyter 中“重新”工作?
问题描述
我有一些 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 解释器中按预期工作,但None
在 Jupyter 笔记本中运行相同代码时返回。怎么来的?也许它与字符编码有关?
解决方案
这个问题与re
. 在周围的代码中,我说:
text = []
...
line = reader.readline()
text = text.extend( re.findall( regexp, line )
我没有意识到 String.extend 会产生副作用,返回None
. 实时调频。
推荐阅读
- python - 创建具有多条记录的数据框
- css - CSS 未覆盖的页面顶部和底部的 Chrome 扩展
- python - IndexError:python中数组的索引太多
- python - 如何处理 MQTT 与一个客户端和 2 个服务器相互回复?
- javascript - 如何在点之间插入线
- django - Django Rest Framework:在不提供 pk 的情况下更新和删除当前用户
- javascript - 对动态添加的字段进行排序
- javascript - 在 x 轴上进行缩放工作,使用 y 轴自动缩放到可见图形段上显示的数据点
- hyperledger-fabric - 如何在区块链和超级账本结构中检测到区块链或世界状态中的数据篡改(已添加区块的数据)?
- javascript - 指数代码,我不了解代码行为