2

在对此进行初步搜索后,我有点迷路了。

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

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

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

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

4

1 回答 1

1

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

于 2013-07-28T10:15:55.137 回答