Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式匹配问题_C#_.net_Regex - Fatal编程技术网

C# 正则表达式匹配问题

C# 正则表达式匹配问题,c#,.net,regex,C#,.net,Regex,我想匹配这个模式:[k1,v1][k2,v2] k1…kn不能为空,而v1…vn可以为空 [k,v]可以重复1次以上 我写了这个,但它不起作用:^(?=\[)。+(?似乎你想要这样的东西 @"^(?:\[[^,\]]+(?:,[^\]]+)?\])+$" 解决方案:@“^(?:\[^,\]+(?:,[^\]+)?\]+$” 说明: 在字符串开头断言位置^ 匹配下面的正则表达式(?:\[[^,\]+(?:,[^\]]+)+ 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+ 按字面意思匹配字

我想匹配这个模式:[k1,v1][k2,v2]

k1…kn不能为空,而v1…vn可以为空

[k,v]可以重复1次以上


我写了这个,但它不起作用:
^(?=\[)。+(?

似乎你想要这样的东西

@"^(?:\[[^,\]]+(?:,[^\]]+)?\])+$"
解决方案:
@“^(?:\[^,\]+(?:,[^\]+)?\]+$”

说明:

在字符串开头断言位置
^

匹配下面的正则表达式
(?:\[[^,\]+(?:,[^\]]+)+

在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)
+

按字面意思匹配字符“[”
\[

匹配以下列表中不存在的任何单个字符
[^,\]+

在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)
+

文字字符“,”

文字字符“]”
\]

匹配下面的正则表达式
(?:,[^\]]+)?

在0到1次之间,尽可能多次,根据需要回馈(贪婪)

匹配字符“,”

匹配任何不是“]”的字符

在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)
+

按字面意思匹配字符“]”
\]

在字符串末尾或字符串末尾的换行符(如果有)之前断言位置(换行)
$


为了更有帮助,请给出投票被否决的原因。谢谢,伙计!这就是我想要的。从未想过不捕获组
(?:)
。似乎环顾四周还不够。我给你的答案添加了一些解释。希望你不介意。请添加正则表达式模式。你刚刚为我的正则表达式添加了一些解释。仅此而已。你可以从我答案的链接上得到同样的解释。接受你的答案而不是我的答案值得吗?