我有一个Regex.Replace Method (String, String, MatchEvaluator)(文档),我正在使用它MatchEvaluator必须做一些相当繁重的工作。正在使用StandardInput和StandardOutput重定向对另一个库进行调用。该库的性质是,我必须打开 aStandardInput然后关闭它才能通过StandardOutput. 不用说,这是一个相当密集的过程。
但是,我的系统上确实有更多线程,并且想知道是否有办法让Regex线程以并行方式运行。我似乎找不到任何允许这样做的重载,而且鉴于Regex. 我曾考虑过人为地断开字符串,但我担心这会导致某个位置出现中断,从而导致正则表达式的处理发生变化,因为它确实使用了一些环视(虽然不多)。
任何人都可以阐明我如何能够并行化这个吗?它是一个非常大的文档,其中包含多个(数百个)需要替换的匹配项。结果是一个文档,其中所有匹配的字符串都被MatchEvaluator函数的输出替换。
样本文件:
Random characters from all over the alphabet that have no use to me in this context. Including =, &, ", ', &, etc. [StringToReplace] More stuff I can ignore. [OtherStringToReplace]. More characters including foreign languages.
我正在使用以下内容Regex:
resultText = Regex.Replace(text, "(?<=\])[^\[\]]+(?=\[)", matchEval)