KOMARA
KOMARA

Reputation: 51

regex c# string

I would like to transform this claim that I get "[\" 75 \ ", \" 91 \ "]" to (75,91)

I used regex.split but I don't know how to do it.

if (Zone != null)
{
    filtrer.Append(" and depalcement in (");

    foreach (string i in Zone)
    {
        var diviser=Regex.Split(i, @"\");
        filtrer.Append(diviser);
    }
}

Upvotes: 0

Views: 65

Answers (2)

tmaj
tmaj

Reputation: 35165

For completeness; to get from "[\" 75 \", \" 91 \"]" to (75,91) using regex the code could be something like this:

var s2 = "(" + Regex.Replace(input: s, pattern: "[^0-9,]", "") + ")"; // or @"[^\d,]"

Pattern:

  • [...] - character set aka character class aka 'any of'
  • ^ - negate
  • 0-9 or \d - digit
  • , comma
  • together it's any character that isn't a digit or a comma

Upvotes: 1

Oliver
Oliver

Reputation: 45109

No Regex, just JSON. Try this:

var content = "[\"75\",\"91\"]";
var list = System.Text.Json.JsonSerializer.Deserialize<List<string>>(content);
    
var numbers = list.Select(int.Parse);
    
foreach(var number in numbers)
{
    Console.WriteLine(number);
}

Upvotes: 2

Related Questions