Toon posts:

.NET Regex naar geldige C# notatie omzetten

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,

ik zou het volgende willen matchen in bepaalde txt-file content:
multi line (per lijn zoeken)
lijn moet beginnen met dollar-teken
gelijk welk char mag staan na deze dollar
geen of meerdere spaties voor het =-teken
=-teken moet na deze optionele spaties op deze lijn staan
alles wat erachter komt tot en met de laatste double quote op de lijn moet ook greedy meegenomen worden voor selectie

Voorbeeld van een target string : $full = "full"

Dit zijn 2 voorbeelden van .NET Regexen, deze werken perfect voor de string op Regex Hero website:
^\$.*\s*\=.*\"$
\$.*\=.*\"

Wanneer ik dit in C# wil omzetten, krijg ik echter errors (illegal \ op het einde), dus mijn syntax/escaping is ergens niet goed:

Dit is voorbeeld van de C# code:
Regex Var = new Regex((?m)"^\$.*\s*\=.*\"$", RegexOptions.IgnoreCase);
List<string> AllMatches = ExtractRegexMatches(varfileContent, @"(?m)\$.*\=.*\");

Wat doe ik fout?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
update:
is me nu gelukt in C#, behalve het dollar teken die het einde van de string aanduidt.
dit is de regex:
@"(?m)^\$.*\=.*\""");

alleen moet ik optioneel nog een rond haakje op het einde meegeven, en daarna de dollar om de match te laten eindigen

Acties:
  • 0 Henk 'm!

  • scarhand
  • Registratie: December 2001
  • Laatst online: 24-06-2021
Ik neem aan dat je met Regex Hero het getest hebt in de online Silverlight tester?
Die heeft namelijk bovenin gewoon een .net knopje dat code voor je genereert. Daar staat ook de C# string literal voor de regex in (of VB als je die smaak wilt).

Zelf gebruik ik meestal deze om even snel een regex te testen. Deze geeft echter alleen de string literal als er een match wordt gevonden.