我有一个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)