2012-05-20 251 views
1

我有一個字符串:正則表達式提取字符串

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

我想提取「GameObject.Find(\」 MyObj中\「)」,其中MyObj中可以包括除了換行符的任何數量或類型。

這是我的代碼:

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

我知道我做錯了什麼,但我不知道在哪裏可以從這裏走。我們如何使這個表達符合預期的工作?

回答

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

你應該做非貪婪的搜索,但要注意,它只會從括號匹配+引號來第一個引號+括號。

所以對,

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

它將匹配"GameObject.Find(\"seckin(\\\"hand\\\")"

但是沒有辦法匹配封閉使用正則表達式括號,所以它是最好的次優解。

3

也許你應該嘗試:

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

我比你快,我的朋友 –

+0

同意你...我打字很慢! – Writwick