正则表达式提取字符串

时间:2012-05-20 09:51:58

标签: c# regex

我有一个字符串:

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

我想提取“GameObject.Find(\”MyObj \“)”MyObj可以包含除换行符之外的任何数字或类型的字符。

这是我的代码:

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

我知道我做错了什么,但我不确定从哪里开始。我们如何使这个表达式按预期工作?

2 个答案:

答案 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(\".+?\")");