我正在尝试匹配VB代码中的赋值字符串(就像我在VB代码中传递的文本一样,用C#编写的程序)。我想要匹配的赋值字符串就像是
CustomClassInitializer(someParameter, anotherParameter, someOtherClassAsParameterWithInitialization()).SomeProperty = 7
我意识到这很复杂,但它实际上与我试图匹配的一些真实文本相差无几。
为了做到这一点,我写了一个正则表达式。这个正则表达式:
@"[\w,.]+\(([\w,.]*\(*,* *\)*)+ = "
正确匹配。问题是它变得非常慢(有超时),我研究和发现可能是因为“回溯”。一般来说,帮助回溯的建议解决方案之一是添加“?>”到正则表达式,我认为将在这个位置:
[\w,.]+\(?>([\w,.]*\(*,* *\)*)+ =
但这不再匹配。
我对Regex很新,所以我想有一个更好的模式。请问是什么?或者我如何才能改善我的时代?
有用的说明:
提前致谢!
答案 0 :(得分:0)