如何匹配两个括号之间的这种模式(字符 a-z,数字)?
How can I match this pattern (characters a-z, numbers ) between two brackets?
我有这个代码,我想匹配这个模式:
- 两个 "" 之间的所有字符 a-z , A-Z .
- 变量应该在方括号之间。
我怎样才能做到这一点?
应接受此输入:
["a1","a2"]
这是我的代码和我尝试过的代码:
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");
你可以使用
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");
参见 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
详情:
\A
- 字符串开头
\["
- ["
固定字符串
[a-zA-Z0-9]+
- 一个或多个 ASCII letters/digits
"
- 双引号
(?:,\s*"[a-zA-Z0-9]+")*
- 零次或多次重复
,
- 逗号
\s*
- 零个或多个空格
"[a-zA-Z0-9]+"
- "
,一个或多个 ASCII 字母数字字符,"
]
- 一个 ]
字符
\z
- 字符串的末尾。
我有这个代码,我想匹配这个模式:
- 两个 "" 之间的所有字符 a-z , A-Z .
- 变量应该在方括号之间。
我怎样才能做到这一点?
应接受此输入:
["a1","a2"]
这是我的代码和我尝试过的代码:
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");
你可以使用
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");
参见 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
详情:
\A
- 字符串开头\["
-["
固定字符串[a-zA-Z0-9]+
- 一个或多个 ASCII letters/digits"
- 双引号(?:,\s*"[a-zA-Z0-9]+")*
- 零次或多次重复,
- 逗号\s*
- 零个或多个空格"[a-zA-Z0-9]+"
-"
,一个或多个 ASCII 字母数字字符,"
]
- 一个]
字符\z
- 字符串的末尾。