奇怪的python正则表达式行为 – 可能连接到unicode或sqlalchemy
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了奇怪的python正则表达式行为 – 可能连接到unicode或sqlalchemy,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1147字,纯文字阅读大概需要2分钟。
内容图文
![奇怪的python正则表达式行为 – 可能连接到unicode或sqlalchemy](/upload/InfoBanner/zyjiaocheng/892/ecf6b7b03f68479e933f6959d791534f.jpg)
我正在尝试在sqlalchemy结果中搜索一个模式(实际上是通过’like’或’op'(‘regexp’)(模式)过滤,我认为这是在某处植入了正则表达式 – 字符串和搜索字符串都是在希伯来语中,大概是(也许我错了 – ) – unicode
其中r =u’???’和c =u’???,????,’
当我做re.search(r,c)时,我得到了SRE.match对象
但当我查询数据库时:
f = session.query(classname)
c = f[0].color
和c给了我:
'\xd7\x9c\xd7\x91\xd7\x9f,\xd7\x95\xd7\xa8\xd7\x95\xd7\x93,'
或打印(c):
???,????,
实际上相同,但运行re.search(r,c)给我没有匹配对象.
由于我怀疑是unicode问题,我试图用unicode转换为unicode(c)
我得到一个’UnicodeDecodeError:’ascii’编解码器不能解码位置0中的字节0xd7:ordinal’我想这意味着这已经是unicode字符串 – 所以这里的捕获位置是什么?
我更喜欢使用sqlalchemy’喜欢’,但我得到同样的问题=我确切知道的地方(正如我在我的例子中所示,数据包含字符串)
我应该变换搜索字符串,模式不知何故?这与unicode有关吗?别的什么?
db表(我正在查询)排序规则是utf8_unicode_ci
解决方法:
c = f[0].color
没有返回一个Unicode字符串(或者它的repr()会显示一个u’…’类型的字符串),而是一个UTF-8编码的字符串.
尝试
c = f[0].color.decode("utf-8")
结果
u'\u05dc\u05d1\u05df,\u05d5\u05e8\u05d5\u05d3,'
要么
u'???,????,'
如果你的控制台可以显示希伯来字符.
内容总结
以上是互联网集市为您收集整理的奇怪的python正则表达式行为 – 可能连接到unicode或sqlalchemy全部内容,希望文章能够帮你解决奇怪的python正则表达式行为 – 可能连接到unicode或sqlalchemy所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。