Sie
verwenden
^[A-Za-z0-9]+\?\[[A-Za-z0-9]+=[A-Za-z0-9]+(?:;[A-Za-z0-9]+=[A-Za-z0-9]+)*]$
Siehe regex demo
Aufteilung:
^
- Beginn der Zeichenfolge
[A-Za-z0-9]+
-1 oder mehr alphanumerics
\?
- Ein Literal ?
\[
- Ein Literal [
[A-Za-z0-9]+
- 1+ alphanumerische Symbole
=
- Ein Literal =
[A-Za-z0-9]+
- 1+ alphanumerische Symbole
(?:;[A-Za-z0-9]+=[A-Za-z0-9]+)*
- null oder mehr Sequenzen von:
;
- ein wörtliches ;
und
[A-Za-z0-9]+=[A-Za-z0-9]+
- siehe oben
]
- ein wörtliches ]
$
- Ende der Zeichenkette
es ein wenig mit dem Groß- und Kleinschreibung Modifikator Kürzen und \d
:
(?i)^[A-Z\d]+\?\[[A-Z\d]+=[A-Z\d]+(?:;[A-Z\d]+=[A-Z\d]+)*]$
Und um \d
nur übereinstimmen 0-9
Bereich ohne Unicode-Ziffern zu ermöglichen, kompilieren Sie mit RegexOptions.ECMAScript
Option.
Eine mögliche C# regex Erklärung ist:
var rx = new Regex(@"^[A-Z\d]+\?\[[A-Z\d]+=[A-Z\d]+(?:;[A-Z\d]+=[A-Z\d]+)*]$", RegexOptions.IgnoreCase | RegexOptions.ECMAScript);
Sie tun müssen, um entkomme auch den quadratischen Klammern. – juharr
fügen Sie auch '+' nach '[A-Za-z0-9]' –