c# - online - Obtener valores entre comillas
regex operators (2)
¿Cómo puedo obtener el valor entre comillas con un RegEx
por ejemplo, quiero encontrar todos los parámetros de la prueba de función
<html>
test("bla");
print("foo");
test("moo");
</html>
El resultado debe ser {"bla", "moo"}
Si solo quieres que los args test
, deberás incluir eso en la expresión regular:
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);
De la pregunta, estoy usando detección de cotizaciones aquí.
Alternativamente, si solo quieres los valores:
foreach (Match match in Regex.Matches(html, @"test/(""([^/""]*)/""/)"))
{
Console.WriteLine(match.Groups[1].Value);
}
El principal cambio aquí es que el grupo ahora está dentro de las cotizaciones.
editar: eliminó el código anterior e hizo una versión de 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));