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());