C#正则表达式占用太多时间
我有一个正则表达式,即C#正则表达式占用太多时间,c#,regex,C#,Regex,我有一个正则表达式,即 [A-Z]\w*(\s+([A-Z0-9]\w*|-[a-z]?|and|or|of|of the))*(?=\s*,?\s*\(?\s*as defined below\s*\)?) 在word文档上运行它对我来说效果很好。但是把它改成 [A-Z]\w*(\s*([A-Z0-9]\w*|-[a-z]?|and|or|of|of the))*(?=\s*,?\s*\(?\s*as defined below\s*\)?) 只需将\s+更改为\s*会花费太多时间。即使在
[A-Z]\w*(\s+([A-Z0-9]\w*|-[a-z]?|and|or|of|of the))*(?=\s*,?\s*\(?\s*as defined below\s*\)?)
在word文档上运行它对我来说效果很好。但是把它改成
[A-Z]\w*(\s*([A-Z0-9]\w*|-[a-z]?|and|or|of|of the))*(?=\s*,?\s*\(?\s*as defined below\s*\)?)
只需将\s+更改为\s*会花费太多时间。即使在10分钟内也不会返回结果(等待的时间超过10分钟是徒劳的)。甚至
在10分钟内也不会给出结果
此外,我正在测试它的性能
Registration Rights has agreed not to
exercise such rights until after expiration of the Lock-Up Period (as defined below)
并且预计会有
锁定期
结果请尝试使用并行编程,它将转移所有可用内核上的工作负载。
将您的代码放入一个方法中,并从并行调用该方法,如``
Parallel.Invoke(() => DoSomeWork(), () => DoSomeOtherWork());
见检查此qn让我们首先澄清这是与C#相关的问题还是灾难性的回溯。例如,在外部系统上进行测试时,不应使空白模式成为可选模式。这将导致灾难性的回溯。您共享的正则表达式无效。请分享你真正的正则表达式。它现在更新了。是的,有一些打字错误。为什么这是调试正则表达式可以接受的答案?简单地在另一个线程中放置一个错误的正则表达式并不能解决问题。
Parallel.Invoke(() => DoSomeWork(), () => DoSomeOtherWork());