2

私は文字列を持っています:

string s = "GameObject.Find(\"MyObj\").GetComponent(\"MyComponent\")";

「GameObject.Find(\ "MyObj \")」を抽出したいのですが、MyObjには改行以外の任意の数またはタイプの文字を含めることができます。

これは私のコードです:

Match match = Regex.Match(s, "GameObject.Find(\".+\")");

私は何か間違ったことをしていることは知っていますが、ここからどこに行くべきかわかりません。この式を意図したとおりに機能させるにはどうすればよいですか?

4

2 に答える 2

3
Match match = Regex.Match(s, "GameObject.Find(\".+?\")");

欲張りでない検索を行う必要がありますが、一致するのは、括弧+引用符から最初の引用符+括弧までのみであることに注意してください。

だから、

string s = "GameObject.Find(\"seckin(\\\"hand\\\").thumb()\").GetComponent(\"MyComponent\")"

一致します"GameObject.Find(\"seckin(\\\"hand\\\")"

ただし、RegExpを使用して囲み括弧を一致させる方法はないため、これが最適ではない最適なソリューションです。

于 2012-05-20T09:54:57.710 に答える
3

多分あなたは試してみるべきです:

Match match = Regex.Match(s, "GameObject.Find(\".+?\")");
于 2012-05-20T09:55:23.707 に答える