I have this code , and I would like to match this pattern:
- All characters a-z , A-Z between two "" .
- The variables should be between square brackets.
How can I achieve that?
This input should be accepted :
["a1","a2"]
This is my code and what I've tried:
string text = "["a1","a2"]";
Regex rg2 = new Regex(@"[^\""a-z|A-Z|0-9\""$] (, [^\""a-z |A-Z |0-9\""$] ) ");
if (rg2.IsMatch(text)
Console.WriteLine("True");
CodePudding user response:
Try this regex \[\"[a-zA-Z0-9] \"(?:,\"[a-zA-Z0-9] \")*]$
https://regex101.com/r/GUbn3K/1
CodePudding user response:
You can use
Regex rg2 = new Regex(@"^\[""[a-zA-Z0-9] ""(?:,\s*""[a-zA-Z0-9] "")*]$");
Regex rg2 = new Regex(@"\A\[""[a-zA-Z0-9] ""(?:,\s*""[a-zA-Z0-9] "")*]\z");
See the C# demo:
string text = "[\"a1\",\"a2\"]";
Regex rg2 = new Regex(@"\A\[""[a-zA-Z0-9] ""(?:,\s*""[a-zA-Z0-9] "")*]\z");
Console.WriteLine(rg2.IsMatch(text)); // => True
Details:
\A
- start of string\["
- a["
fixed string[a-zA-Z0-9]
- one or more ASCII letters/digits"
- a double quotation mark(?:,\s*"[a-zA-Z0-9] ")*
- zero or more repetitions of,
- a comma\s*
- zero or more whitespaces"[a-zA-Z0-9] "
-"
, one or more ASCII alphanumeric chars,"
]
- a]
char\z
- the very end of string.