【问题标题】:Swedish Unicode issues in pythonpython中的瑞典Unicode问题
【发布时间】:2015-11-26 11:23:59
【问题描述】:

我是这个论坛的新手(这是我的第一个问题),所以请多多包涵。我正在用瑞典语抓取一个网站。它使用 ISO-8859-1 字符集。

在源代码中它可能看起来像这样:

<div class="fl icon-post-old"></div>
    2015-11-13, 15:09
    <a href="

假设我想获取日期和时间(这不是一个真实的例子)。

threadcode=opener.open(threadurl).read()
threadcode2=threadcode.decode("ISO-8859-1")
post=re.findall(r'<div class="fl icon-post-old"></div>(.*?)<a',str(threadcode2))
post2=re.findall(r'<div class="fl icon-post-old"></div>(.*?)<a',str(threadcode))
print (post) #this is blank
print (post2) #this works fine

所以,如果我在“可读性好的瑞典变量帖子”中搜索某些内容,它似乎不起作用。但是,如果我使用 Unicode 表示进行相同的搜索(这不是很有用),那么相同的搜索就可以工作。

你们当中有谁知道这里发生了什么的优秀程序员吗?

如果在某些情况下搜索确实有效,我还可以添加... 例如:

post=re.findall(r'Jag vill(.*?)bil',str(threadcode2))

这会起作用...

我很困惑。

【问题讨论】:

标签: python unicode


【解决方案1】:

与瑞典语无关。我认为re 在多行中很无聊。如果您执行以下操作:

post=re.findall(
  r'<div class="fl icon-post-old"></div>(.*?)<a',
  threadcode2.replace('\n','')
)

你会得到预期的结果。

【讨论】:

    【解决方案2】:

    在将 unicode 字符串传递到 re.findall 时,您应该传递 re.UNICODE 标志:

    post=re.findall(r'<div class="fl icon-post-old"></div>(.*?)<a',threadcode2, flags=re.UNICODE)
    

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 2013-03-21
      • 2015-07-07
      • 2023-03-23
      相关资源
      最近更新 更多