jaw*_*jaw 2 python regex unicode
我在尝试查找正则表达式中指定的文本时遇到问题.一切都工作得很好但是当我在我的正则表达式中添加"\£"时它开始引起问题.我得到了SyntaxError.文件(...)中的"非ASCII字符"\ xc2"但没有声明编码...
我试图用这个来解决这个问题
import sys
reload(sys) # to enable `setdefaultencoding` again
sys.setdefaultencoding("UTF-8")
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.我只想构建正则表达式并在那里使用井号.标志re.Unicode标志没有帮助,保存字符串作为unicode(拍)没有帮助.有没有解决这个正则表达式的解决方案?我只想构建正则表达式并在那里使用英镑符号.谢谢你的帮助.
k = text.encode('utf-8')
pat = u'salar.{1,6}?([0-9\-,\. \tkFFRroOMmTtAanNuUMm\$\&\;\£]{2,})'
pattern = re.compile(pat, flags = re.DOTALL|re.I|re.UNICODE)
salary = pattern.search(k).group(1)
print (salary)
Run Code Online (Sandbox Code Playgroud)
即使我发表评论错误仍然存在(放"#"并跳过所有这些行.也许它与re.库没有关联,但我的设置?
错误消息意味着Python无法猜测您正在使用哪个字符集.它还告诉您,您可以通过告诉它脚本的编码来修复它.
# coding: utf-8
string = "£"
Run Code Online (Sandbox Code Playgroud)
或者等价的
string = u"\u00a3"
Run Code Online (Sandbox Code Playgroud)
如果没有编码声明,Python会看到一堆字节,这些字节在不同的编码中意味着不同的东西.它不是猜测,而是强迫你告诉你它们的含义.这在PEP-263中编纂.
(ASCII是明确的[除非你的系统是EBCDIC我猜],所以它知道你的意思,如果你使用纯ASCII表示的一切.)
您正在摆弄的编码设置会影响文件和流的读取方式,以及程序I/O的一般情况,但不会影响程序源的解释方式.
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |