gpt4 book ai didi

javascript - JS中高效的字符串解析 : How to create a substring which does not allocate a new string

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:14 26 4
gpt4 key购买 nike

我有大量消息通过 websocket 发送,我想用正则表达式解析(为简单起见)。

正则表达式识别 header 的格式,在读取长度字段后,我们就知道下一段所在的位置,我可以在该部分运行正则表达式。

但是,由于我的整个消息可能很大(比如说……10MB)并且包含许多段(比如说……1000,其中平均段的长度略低于 1K),然后天真地切分主要内容将它传递回下一个位置的 re.exec() 的消息似乎会导致大量的 GC 抖动,如果不是仅为原始字符串内容分配千兆字节的话。

我想知道是否有任何与正则表达式相关的函数允许我指定开始运行正则表达式的索引? execsearch 不允许我这样做。

最佳答案

ES6 在 RegExp 上定义了一个“粘性”标志,它允许检查字符串是否在特定位置以 regexp 开头:

var position = 3;
var string = "la-la-la";

var re = /\d+/y;
re.lastIndex = position;
var match = re.exec(string);
//... do something with match

有一个关于这个的讨论: http://esdiscuss.org/topic/proposal-for-exact-matching-and-matching-at-a-position-in-regexp

关于javascript - JS中高效的字符串解析 : How to create a substring which does not allocate a new string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24788389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com