【发布时间】:2011-03-04 01:21:41
【问题描述】:
以下在空闲时匹配,但在模块文件中的方法中运行时不匹配:
import re
re.search('\\bשלום\\b','שלום עולם',re.UNICODE)
虽然以下两种情况都匹配:
import re
re.search('שלום','שלום עולם',re.UNICODE)
(请注意,stackoverflow 错误地切换了上行中的第一项和第二项,因为这是一种从右到左的语言)
如何使 py 文件中的第一个代码匹配?
更新:我应该为第一段编写的是它在 Idle 中匹配,但在使用 PyDev 在 Eclipse 控制台中运行时不匹配。
【问题讨论】:
-
第一个 re.search() 在 IDLE 或模块中对我不起作用。
-
你试过
re.LOCALE而不是UNICODE吗?我会安装语言环境,但我有点担心我永远不会把它切换回来。题外话:有人说谷歌翻译太过分了apt-get install user-he; hebrew-settings变成apt-get install user-en; english-settings这令人印象深刻,但错误;) -
@Lee,第一个对我来说也不是,尽管第二个是。我提到这一点是因为我们可能都在一个非他的语言环境中,而且很多事情都依赖于它。奇怪的是,它的粘贴顺序是正确的。
-
感谢大家检查。我认为我没有专门针对希伯来语设置任何内容,只是针对 unicode。 Idle\Options\Configure IDLE\General\Default Source Encoding 设置为 UTF-8,在 C:\Python26\Lib\site.py 我有 encoding = "utf-8" 而不是 encoding = "ascii"。还要确保您使用的是支持 unicode 的字体,例如 Courier 或 Courier New
标签: python regex unicode right-to-left