如何在python中实现Unicode缓冲区

时间:2013-07-28 09:16:17

标签: python types unicode-string

在初步搜索之后,我有点迷失。

我想使用缓冲区对象来保存一系列Unicode代码点。我只需要从所述序列中扫描和提取令牌,所以基本上这是一个只读缓冲区,我们需要在缓冲区内推进指针以及提取子段的功能。缓冲区对象当然应该支持通常的正则表达式并搜索字符串上的操作。

可以使用普通的Unicode字符串,但问题是创建子字符串副本以模拟在缓冲区内推进指针。对于较大的缓冲区,这似乎是非常低效的esp,除非有一些解决方法。

我可以看到有一个Memoryview对象是合适的,但它不支持Unicode(?)。

我还可以使用什么来提供上述功能? (无论是在Py2还是Py3)。

1 个答案:

答案 0 :(得分:1)

这取决于究竟需要什么,但通常只有一个Unicode字符串就足够了。如果你需要采用非小切片,你可以将它们保存为3元组(big unicode, start pos, end pos),或者只使用这3个属性和任何需要的API制作自定义对象。重点是许多方法,如unicode.find()或正则表达式模式对象的search()支持指定起点和终点。所以你可以做大多数基本的事情,而不需要切割单个大的unicode字符串。