2016-04-06 4 views
-4

Wie schreibe ich einen regulären Ausdruck, dieRegex für Pfad Validieren

\ Segment \ Segment \

a) jedes Segment beginnt für unter Bedingungen in C# verläuft und endet mit einem umgekehrten Schrägstrich

b) -Segment kann mit Bindestrichen alphanumerische, ein Unterstrich und die Periode erlaubt (zB \ some-name \ some.other_name \)

c) kann die Sequenz max 100 mal wiederholt (im Grunde nur 100 Segmente erlaubt)

+0

Was sollte nicht übereinstimmen? –

Antwort

2

können Sie versuchen, die folgenden:

Regex myRegex = new Regex("^\\(?:[\w\-.]+\\){1,100}$"); 

Die Regex beginnt mit Matching '\', dann Buchstaben übereinstimmt, Ziffern, Unterstriche, Bindestriche, Punkte ein oder mehrere Male mit einem '\' endet. Es wiederholt sich schließlich bis zu 100 Mal.

Diese Version unterstützt Unicode-Pfadnamen.

1

Wie wäre es damit:

(?<=\\)[A-Za-z\-\.]+(?=\\) 

eine beliebige Kombination von Zeichen auszuwählen, die Sie innerhalb der Schrägstriche erwähnt? Nicht die Backslashes auswählen.

1

Das Folgende ist Extended Regular Expressions (ERE). Fügen Sie alle anderen erlaubten Zeichen (vor allem glaube ich, Raum kann ein Zeichen, das Sie in mögen, und ist damit, dass die - am Ende links) zwischen den eckigen Klammern:

^(\\[\w.-]+){1,100}\\$ 

(nach im Code für einen Fehler zu korrigieren, der resultierende Code ist der gleiche wie die Antwort oben haha!)