0

假设你有一个string

string s = "GameObject.Find(\"obj\").GetComponent(\"comp\").GetMethod(\"method\").Get...";

string可以附加任意数量的方法GetX()

而且您需要在没有“。”的情况下分隔每个方法。分隔器。虽然,GameObject.Find可以保留(dot)

到目前为止,这是我的代码:

Match match = Regex.Match(s, "(.+?\\(\".+?\"\\))(?:\\.??)*");

这只会产生一组。这个问题的正确解决方案是什么?

编辑

更新为非捕获组。

4

1 回答 1

1

首先,我建议使用逐字字符串文字在 C# 中编写正则表达式。这减少了您需要编写的反斜杠的数量。

 @"(.+?\("".+?""\)\.??)*"

要获取所有捕获,请检查Match.Captures

在线查看它:ideone

于 2012-05-20T11:06:16.473 回答