如何使用RegEx
获取引号之间的值例如我想找到函数测试中的所有参数
<html>
test("bla");
print("foo");
test("moo");
</html>
结果必须是{“bla”,“moo”}
答案 0 :(得分:2)
如果您只想将args转到test
,则需要将其包含在正则表达式中:
StringBuilder sb = new StringBuilder("{");
bool first = true;
foreach (Match match in Regex.Matches(html, @"test\((""[^\""]*\"")\)"))
{
if(first) {first = false;}
else {sb.Append(',');}
sb.Append(match.Groups[1].Value);
}
sb.Append('}');
Console.WriteLine(sb);
从问题来看,我在这里使用引用检测。
或者 - 如果您只想要值:
foreach (Match match in Regex.Matches(html, @"test\(""([^\""]*)\""\)"))
{
Console.WriteLine(match.Groups[1].Value);
}
这里的主要变化是该组现在位于引号内。
答案 1 :(得分:1)
编辑:删除了旧代码并制作了linq版本......
var array = (from Match m in Regex.Matches(inText, "\"\\w+?\"")
select m.Groups[0].Value).ToArray();
string json = string.Format("{{{0}}}", string.Join(",", array));