python - 如何在 python 中实现 Unicode 缓冲区

标签 python types unicode-string

初步搜索后,我有点迷路了。

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

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

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

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

最佳答案

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

关于python - 如何在 python 中实现 Unicode 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906746/

相关文章:

python - 在 Python 中选择不同的 switch-case 替换 - 字典还是 if-elif-else?

python - pymongo db.collection.update操作失败

c++ - 将迭代器返回到 C 数组的方法的正确类型声明

php - 如何截断具有 unicode 字符的单词而不破坏 unicode?

dynamic-memory-allocation - 拉撒路/德尔福 : UnicodeString in self-allocated record data type causes access violations

python - 在函数中调整 Pandas DF 的正确格式

python - Flutter 与 Python Django RESTFUL API

C++ 环境变量

mysql - 什么相当于 Oracle 数据库的 Number(4) 到 MySQL 数据类型?

Python DELETE 字符(Unicode 7F)似乎没有做任何事情。它不应该删除后续字符,还是我做错了?