2016-04-05 5 views
1

Für eine meiner Anwendung versuche ich Test von <textarea> Tag zu lesen. Im Folgenden genannten Muster vor perfekt gearbeitet, in Visual Studio 2010. Aber in Visual Studio 2013 es gibt Fehler „angegebene Argument war außerhalb des Bereichs der gültigen Werte Parametername: i.“Fehler beim Regex namens Erfassungsgruppen

Meine RegexMuster string exp = @"<textarea[^>]*id=['""]objCodePress_QB_Query['""].*?>(?<xtract>(.*?))</textarea>";

und Zeichenkette Probe, die ich suche ist

<textarea id="objCodePress_QB_Query" name="objCodePress_QB_Query" style="width:100%;" rows=20 class="codepress sql">Hello this is a test</textarea> 

Gibt es ein Update in Regex für neue Version oder wie ich das beheben?

+1

Bitte den vollständigen relevanten Code eingeben. –

+0

@ WiktorStribiżew Codezeile http://prntscr.com/aocs0b –

+0

Es bedeutet, dass Sie keine Übereinstimmung erhalten haben. Sie sollten 'mc.Count' überprüfen, wenn es nicht" 0 "ist, bevor Sie' 1' davon subtrahieren. Ich denke, alles, was Sie brauchen, ist "RegexOptions.Single". Oder füge '(? S)' am Musteranfang hinzu. –

Antwort

0

Es ist klar, dass das Problem, das Sie haben, mit Leerzeichen zusammenhängt.

Wenn Sie das Regex-Objekt deklarieren, verwenden Sie RegexOptions.Singleline, um die . zu erzwingen, um alle Zeichen einschließlich eines Zeilenumbaus zu finden.

Eine andere Lösung ist (?s) direkt am Anfang Ihres Musters hinzuzufügen.

Verwandte Themen