如何在python中搜索unicode字符串
我正在使用python搜索字符串中的一些简单西里尔文模式。我使用的模式类似于如何在python中搜索unicode字符串,python,regex,python-2.7,unicode,Python,Regex,Python 2.7,Unicode,我正在使用python搜索字符串中的一些简单西里尔文模式。我使用的模式类似于/[а-а]+/[а-а]+。当我用这个代码搜索模式时 import re re.search('/[а-я]+/[а-я]+', '/бцршб/бйцбйц') 它什么也找不到。但是当我这样写的时候 import re re.search(u'/[а-я]+/[а-я]+', u'/бцршб/бйцбйц') 它起作用了。然而,在我的例子中,模式和文本是在数据库中预定义的,所以我找不到将它们转换为Unicode
/[а-а]+/[а-а]+
。当我用这个代码搜索模式时
import re
re.search('/[а-я]+/[а-я]+', '/бцршб/бйцбйц')
它什么也找不到。但是当我这样写的时候
import re
re.search(u'/[а-я]+/[а-я]+', u'/бцршб/бйцбйц')
它起作用了。然而,在我的例子中,模式和文本是在数据库中预定义的,所以我找不到将它们转换为Unicode字符串的方法。在这种情况下,解决方案是什么。任何帮助都将不胜感激 谢谢大家。它在解码字符串时工作。因此,代码如下所示:
import re
pattern = '/[а-я]+/[а-я]+'.decode('utf-8')
text = '/йцбйц/бйцбц'.decode('utf-8')
re.search(pattern, text)
“存储中预定义”是什么意思?请发布一个完整、简短的程序来演示您遇到的问题。@jwodder您可以尝试在字符串上使用
decode()
,它将为您提供AttributeError:“str”对象没有属性“decode”
@Anand:实际上您描述的行为是Python 3,其中“str”已经是unicode对象。谢谢大家。它在解码字符串时工作。代码如下:import-re-pattern='/[а-а]+/[а-а]+'.decode('utf-8')text='/аааааааааааааааааа。