我有一个字符串:
string s = "GameObject.Find(\"MyObj\").GetComponent(\"MyComponent\")";
我想提取“GameObject.Find(\”MyObj \“)”MyObj可以包含除换行符之外的任何数字或类型的字符。
这是我的代码:
Match match = Regex.Match(s, "GameObject.Find(\".+\")");
我知道我做错了什么,但我不确定从哪里开始。我们如何使这个表达式按预期工作?
答案 0 :(得分:3)
Match match = Regex.Match(s, "GameObject.Find(\".+?\")");
你应该进行非贪婪的搜索,但要注意它只会从parantheses +引号到第一个引号+ parantheses匹配。
所以,
string s = "GameObject.Find(\"seckin(\\\"hand\\\").thumb()\").GetComponent(\"MyComponent\")"
它将匹配"GameObject.Find(\"seckin(\\\"hand\\\")"
但是没有办法使用RegExp匹配括号括号,因此它是最佳的次优解决方案。
答案 1 :(得分:3)
也许你应该尝试:
Match match = Regex.Match(s, "GameObject.Find(\".+?\")");