【问题标题】:Using unicode char code in regular expression在正则表达式中使用 unicode char 代码
【发布时间】:2015-09-15 16:38:55
【问题描述】:

为了简化我的任务,假设我想在某个网页中找到用希伯来语写的任何单词。 所以我知道希伯来字符代码是U+05D0U+05EA。 我想写这样的东西:

expr = "[\u05D0-\u05EA]+"
url = "https://en.wikipedia.org/wiki/Category:Countries"    

web_handle = urllib2.urlopen(url)
website_text = website_handle.read()    
matches = sre.findall(exp, website_text)
for item in matches:
    print item

我期望的输出是:

用语

但输出却是很多中文/日文字符。

【问题讨论】:

  • @stribizhev 它什么也找不到。也许我应该改用 HTML 代码?

标签: python regex unicode


【解决方案1】:

你可以在一个字符类中使用python中的标准unicode表示:

re.findall([\u05D0-\u05EA], website_text,re.U)

【讨论】:

  • 它什么也找不到。也许我应该改用 HTML 代码? &#1488&#1514
  • @Sanich 不,它在 python 中不起作用,也许你需要解码你的文本,实际上它基于你的文本。
  • 文本是HTML网页
  • @Sanich 您可以在您的问题中添加示例数据吗?与您的预期输出?
【解决方案2】:

表达式应该是:

expr = u"[\u05D0-\u05EA]+"

注意开头的“u”。

【讨论】:

    猜你喜欢
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2020-03-02
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多