DxC*_*xCK 40 .net c# regex streaming
我正在寻找在Streams上应用正则表达式的快速而安全的方法.
我在互联网上找到了一些关于将每个缓冲区转换为String然后应用于Regex字符串的示例.
这种方法有两个问题:
RegexStreams ,肯定可以避免.Regex支持:Regex模式有时只有在将两个缓冲区组合在一起时才能匹配(缓冲区1以匹配的第一部分结束,缓冲区2以匹配的第二部分开始).转换为字符串的方式无法原生地处理这种类型的匹配,我必须提供更多信息,例如模式可以匹配的最大长度,这根本不支持+和*正则表达式标志,并且永远不会支持(无限制匹配)长度).因此,转换为字符串的方式并不快,并且不完全支持Regex.
是否有任何方法/库可用于Regex在Streams 上应用而无需转换为字符串并具有完整的Regex支持?
看来您会知道您想要获取的比赛的开始和结束分隔符,对吗?(即 [,] 或 START、END 等)那么,当流中的数据进入时搜索这些分隔符,然后在分隔符之间创建子字符串并对这些分隔符进行进一步处理是否有意义?
我知道这与自己推出几乎是一样的,但它将有更具体的目的,甚至能够在它进来时对其进行处理。
在这种情况下,正则表达式的问题在于它们基于匹配来工作,因此您只能根据您拥有的输入量进行匹配。如果您有一个流,则必须读入所有数据才能获得所有匹配项(空间/时间限制问题),尝试在一次引入的字符上进行匹配(非常无用),以块进行匹配(再次,那里很容易错过一些东西)或生成感兴趣的字符串,如果它们符合您的标准,则可以将其发送到其他地方进行进一步处理。
| 归档时间: |
|
| 查看次数: |
10257 次 |
| 最近记录: |